我正在尝试按多列分组,然后将所有记录的Amount字段汇总到一条记录中。
例如,我有三个库存记录,它们具有相同的位置,类型和产品。我想只返回一个库存记录(EFModel.Inventory的一个实例),但是它具有来自所有三个记录的金额之和。但是,我还不想执行查询!请检查下面的代码以获得一些澄清。有没有一种简单的方法可以做到这一点?
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
非常感谢提前!
答案 0 :(得分:0)
其中query是您的初始集合。
IQueryable<EFModel.Inventory> query = GetInventoryView();
if (searchParameters.GroupByLocation)
{
var model = query.GroupBy((group =>
new { LocationID = group.LocationID,
LocationType = group.LocationType,
ProductID = group.ProductID
}
)
.Select(select =>
new <returning object>() {
total = select.Sum(total => total.{Amount Property}),
LocationID = select.Key.LocationID,
....,
//other properties here
});
//do other stuff here
}
这就是我做类似的事情。假设我已正确阅读了您的问题。
任何问题都让我知道。 (代码没有被检查,但应该有效)