所以我在使用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来指定总数,但这似乎只是围绕着。
任何建议都表示赞赏。
答案 0 :(得分:6)
在DelegatingHandler
课程中,按如下方式定义Models.ProductData
属性:
Total
并避免在Linq查询中设置它。