【发布时间】:2021-07-30 23:19:27
【问题描述】:
这是我的 SQL 查询,我在 linqpad 中对其进行了测试,它有效,但在 EF Core 3.1 中无效:
from v in JournalVoucherLines
group v by v.AccountId into vg
join bp in Parties on vg.FirstOrDefault().AccountId equals bp.AccountId
select new
{
name = bp.FullName,
key = vg.Key,
Creditor = vg.Sum(v => v.Credit),
Deptor = vg.Sum(v => v.Debit),
RemainAmount = vg.Sum(v => v.Credit) - vg.Sum(v => v.Debit)
}
当我在 EF Core 中使用查询时,我得到了这个异常:
LINQ 表达式'(GroupByShaperExpression: KeySelector: (j.AccountId), 元素选择器:(实体形状表达式: 实体类型:JournalVoucherLine 值缓冲区表达式: (ProjectionBindingExpression:EmptyProjectionMember) IsNullable: 假 ) ).FirstOrDefault()'
无法翻译。以可翻译的形式重写查询,或通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用显式切换到客户端评估。请参阅https://go.microsoft.com/fwlink/?linkid=2101038 了解更多信息。 "
此查询的最佳做法是什么?
【问题讨论】:
标签: linq entity-framework-core eager-loading ef-core-3.1