2008-09-15 33 views
67

使用LINQ to SQL,我有一个Order类的OrderDetails集合。订单明细有一个名为LineTotal的属性,它获取Qnty x ItemPrice。集合中的项目总和

我知道如何做一个新的LINQ查询数据库来查找订单总额,但因为我已经从数据库的OrderDetails的集合,是否有一个简单的方法来直接返回LineTotal的总和采集?

我想添加订单总额作为我的订单类的属性。我想我可以遍历集合并计算每个Order.OrderDetail的总和,但我猜测有更好的方法。

回答

151

你可以做的LINQ to Objects和使用LINQ来计算总计:

decimal sumLineTotal = (from od in orderdetailscollection 
select od.LineTotal).Sum(); 

您还可以使用拉姆达表达式来做到这一点,这是一个有点“干净”。

decimal sumLineTotal = orderdetailscollection.Sum(od => od.LineTotal); 

,如果你愿意,你可以再勾该到你的订单类是这样的:

Public Partial Class Order { 
    ... 
    Public Decimal LineTotal { 
    get { 
     return orderdetailscollection.Sum(od => od.LineTotal); 
    } 
    } 
}