选择中Linq值的总和

时间:2016-11-15 12:04:38

标签: c# linq dictionary model sum

所以我在使用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来指定总数,但这似乎只是围绕着。

任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:6)

DelegatingHandler课程中,按如下方式定义Models.ProductData属性:

Total

并避免在Linq查询中设置它。