2008-09-15 60 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); 
    } 
    } 
}