小编Sha*_*ram的帖子

如何在 EF Core 3.1 中使用 Linq 表达式与 GroupBy 进行连接

这是我的 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)
  }
Run Code Online (Sandbox Code Playgroud)

当我在 EF Core 中使用查询时,出现以下异常:


无法翻译LINQ 表达式“(GroupByShaperExpression: KeySelector: (j.AccountId), ElementSelector:(EntityShaperExpression: EntityType: JournalVoucherLine ValueBufferExpression: (ProjectionBindingExpression: EmptyProjectionMember) IsNullable: False ) ).FirstOrDefault()”。以可翻译的形式重写查询,或者通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用来显式切换到客户端计算。有关详细信息,请参阅https://go.microsoft.com/fwlink/?linkid=2101038 。 …

linq eager-loading entity-framework-core ef-core-3.1

3
推荐指数
1
解决办法
5169
查看次数