質問
LINQ to SQL を使用して、OrderDetails のコレクションを持つ Order クラスを作成しました。注文の詳細には、数量 x 商品価格を取得する LineTotal というプロパティがあります。
データベースに対して新しい LINQ クエリを実行して注文合計を見つける方法はわかっていますが、DB から OrderDetails のコレクションをすでに持っているので、コレクションから直接 LineTotal の合計を返す簡単な方法はありますか?
注文合計を Order クラスのプロパティとして追加したいと思います。コレクションをループして、各 Order.OrderDetail で合計を計算できると思いますが、もっと良い方法があると思います。
解決
LINQ to Objects を実行し、LINQ を使用して合計を計算することができます。
decimal sumLineTotal = (from od in orderdetailscollection
select od.LineTotal).Sum();
これを行うためにラムダ式を使用することもできます。これは、少し「きれい」です。
decimal sumLineTotal = orderdetailscollection.Sum(od => od.LineTotal);
必要に応じて、これを次のように Order クラスに接続できます。
Public Partial Class Order {
...
Public Decimal LineTotal {
get {
return orderdetailscollection.Sum(od => od.LineTotal);
}
}
}
所属していません StackOverflow