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来分配总数,但这似乎只是大约。

select中Linq值的总和

Models.ProductData类中,定义Total属性如下:

public double Total {
    get {
        return this.Qty + this.Qty1;
    }
}