在我的M-M表格中,我有Quantity
(int)特定订单的产品。
我正在尝试计算同一ProductId的数量总和,忽略OrderId。意思是我要在我的List集合中汇总特定产品的所有数量。
Product_Order:
---------------- ----------- ---------
| ProductId | OrderId | Quantity |
---------------- ----------- ---------
这就是我的想法(代码不会工作):
SumQuantity = collection.Sum(x=> x.Product_Order
.Where(c=>c.ProductId == product.ID)
.Select(Quantity))
(collection-list是我添加的产品选择产品列表)
答案 0 :(得分:1)
据我所知,您的Quantity
属于Product_Order
。因此,您需要collection
来限制您的产品ID。
我建议使用此查询:
var SumQuantity = Product_Order.Where(x=>collection.Any(o=>o.ProductId==x.ProductId))
.Sum(x=>x.Quantity);
或者,如果您的Quantity
商标上有Product
,并且想要使用此商标:
var SumQuantity = collection.Where(x=>Product_Order.Any(o=>o.ProductId==x.ProductId))
.Sum(x=>x.Quantity);
答案 1 :(得分:0)
你需要像这样构建Linq
collection.Where(c => c.Product_Order.ProductId == product.ID).Select(x => x.Product_Order.Quantity).Sum();
答案 2 :(得分:0)
如果Product_Order.Product是一个列表,那么你可以尝试这个
collection.Where(c => c.Product_Order.Product.Any(p=>p.id == product.ID)).Select(x => x.Product_Order.Quantity).Sum();