我有一个
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
的情况下完成此操作。
您需要先加载查询的结果:
var totals = db.Items.GroupBy(x => x.Code)
.Select(x => new
{
Code = x.Key,
Total = x.Sum(y => y.Amount),
}).ToList();
然后将“总计”与 Code-Phase 集合相结合进行进一步计算。