实体框架按内存集合分组

问题描述 投票:0回答:1

我有一个

Items
表,其中包含
Id
Code
Amount
列。

有一个内存中集合,其中包含代码-阶段值对:

T100 - 1
L100 - 1
T200 - 2
...多个代码可以映射到相同的阶段号。

获取每个代码的总数很简单。

 var totals = db.Items.GroupBy(x => x.Code)
                      .Select(x => new
                      {
                        Code = x.Key,
                        Total = x.Sum(y => y.Amount),
                      });

是否可以在 EF 中进行查询,按阶段编号查找总金额?

我知道内存集合和 EF

IQuerable
的结合通常是不可能的。我希望在不将 DbSet 转换为
IEnumerable
的情况下完成此操作。

c# entity-framework entity-framework-core
1个回答
0
投票

您需要先加载查询的结果:

var totals = db.Items.GroupBy(x => x.Code)
                      .Select(x => new
                      {
                        Code = x.Key,
                        Total = x.Sum(y => y.Amount),
                      }).ToList();

然后将“总计”与 Code-Phase 集合相结合进行进一步计算。

© www.soinside.com 2019 - 2024. All rights reserved.