select中Linq值的总和
本文关键字:Linq select | 更新日期: 2023-09-27 18:17:55
所以我在使用linq时总是遇到这种情况。假设我有如下代码:
var results = _context.Products.Select(d =>
new Models.ProductData()
{
Id = d.ProductId,
Name = d.Product.Name,
Qty = d.Number.Where(y => y.Active && y.CodeId == 5 && y.Status == "NEW").Sum(y => y.FeeAmount),
Qty1= d.Number.Where(y => y.Active && y.CodeId == 7 && y.Status == "NEW").Sum(y => y.Fee),
Total = d.Number.Where(y => y.Active && y.CodeId == 5 && y.Status == "NEW").Sum(y => y.FeeAmount) + d.Number.Where(y => y.Active && y.CodeId == 7 && y.Status == "NEW").Sum(y => y.Fee)
}
);
对于总数,有没有更好的方法来计算总数,而不必写出所有的linq语句与+符号之间?如果能写像
这样的东西就好多了Total = Qty + Qty1
我可以从初始映射中省略总数,并按Id分组重新映射它,并通过引用total = Qty + Qty1来分配总数,但这似乎只是大约。
在Models.ProductData
类中,定义Total
属性如下:
public double Total {
get {
return this.Qty + this.Qty1;
}
}