2008-09-15 15 views
67

LINQ to SQLを使用して、OrderDetailsのコレクションを持つOrderクラスがあります。 Order Detailsには、Qnty x ItemPriceを取得するLineTotalというプロパティがあります。コレクション内のアイテムの合計

注文合計を見つけるためにデータベースの新しいLINQクエリを行う方法を知っていますが、既にDBからOrderDetailsのコレクションを取得しているので、LineTotalの合計を直接コレクション?

オーダーの合計をOrderクラスのプロパティとして追加したいと思います。私はコレクションをループし、各Order.OrderDetailのaと合計を計算することができますが、私はそこに良い方法があると思います。

答えて

151

あなたは合計を計算するためにオブジェクトとの使用LINQに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); 
    } 
    } 
} 
関連する問題