EF Core 5 – 不支持“into”关键字?

此查询适用于 EF Core 5:

var query = from test1 in context.Test1
            join test2 in context.Test2 on test1.Id equals test2.Test1Id
            select new
            {
                test1,
                test2
            };
var result = query.ToList();

但是,当我只添加一个into关键字时:

var query = from test1 in context.Test1
            join test2 in context.Test2 on test1.Id equals test2.Test1Id into xxx
            select new
            {
                test1,
                test2 = xxx
            };
var result = query.ToList();

它抛出:

未处理的异常。System.InvalidOperationException: The LINQ expression 'DbSet() .GroupJoin(inner: DbSet(), outerKeySelector: test1 => (Nullable)test1.Id,innerKeySelector: test2 => test2.Test1Id, resultSelector: (test1, xxx) => new { test1 = test1, test2 = xxx })' 无法翻译。以可翻译的形式重写查询,或通过插入对“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的调用,显式切换到客户端评估。有关详细信息,请参阅https://go.microsoft.com/fwlink/?linkid=2101038

(真正的查询当然更复杂,into子句更有意义。)

有什么解决方法吗?

斯维亚托斯拉夫·丹尼利夫

GroupJoin EF Core 中的支持仍然非常有限,但您可以省略此类限制:

var query = from test1 in context.Test1
            select new
            {
                test1,
                test2 = context.Test2.Where(test2 => test1.Id == test2.Id).ToList()
            };
var result = query.ToList();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章