【发布时间】:2014-12-18 00:28:42
【问题描述】:
我正在尝试按多列分组,然后将所有记录的金额字段汇总为一条记录。
例如,我有三个库存记录,它们具有相同的位置、类型和产品。我只想返回一个库存记录(EFModel.Inventory 的一个实例),但要从所有三个记录中获得 Amount 的总和。但是,我还不想执行查询!请检查下面的代码以获得一些说明。有没有简单的方法可以做到这一点?
IQueryable<EFModel.Inventory> query = GetInventoryView();
if (searchParameters.GroupByLocation)
{
query = from inv in query
group inv by new { inv.LocationID, inv.LocationType, inv.ProductID }
into groupedInv
select groupedInv.First();
}
// Now, perform filtering, sorting, paging and etc. on the query
非常感谢!
【问题讨论】:
-
但是 .First() 调用将执行您的查询,并且在 if 语句结束时,查询将具有实体(如果存在),否则将引发异常。
-
是的,你是对的.. 很好!
标签: c# linq entity-framework grouping iqueryable