LINQ to SQLを使用して、OrderDetailsのコレクションを持つOrderクラスがあります。 Order DetailsにはLineTotalというプロパティがあり、Qnty x ItemPriceを取得します。
データベースの新しいLINQクエリを実行して注文合計を検索する方法は知っていますが、DBからOrderDetailsのコレクションが既にあるので、コレクションからLineTotalの合計を直接返す簡単な方法はありますか?
Orderクラスのプロパティとして注文合計を追加したいと思います。コレクションをループして、各Order.OrderDetailので合計を計算できると思いますが、もっと良い方法があると思います。
オブジェクトに対してLINQを実行し、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);
}
}
}