Frage

Mit LINQ to SQL, ich habe eine Order-Klasse mit einer Sammlung von Orderdetails. Die Order Details hat eine Eigenschaft namens Linetotal, die Qnty x ItemPrice bekommt.

Ich weiß, wie eine neue LINQ-Abfrage der Datenbank zu tun, um die Auftragssumme zu finden, aber wie ich schon die Sammlung von Orderdetails aus der DB habe, gibt es eine einfache Methode, um die Summe der Linetotal direkt aus der Sammlung zurück ?

Ich möchte die Auftragssumme als Eigenschaft meiner Order-Klasse hinzuzufügen. Ich stelle mir vor, ich könnte eine Schleife durch die Erhebung und Berechnung der Summe mit einem für jeden Order.OrderDetail, aber ich vermute, es gibt einen besseren Weg.

War es hilfreich?

Lösung

Sie können LINQ to Objects tun und die Verwendung von LINQ die Summen zu berechnen:

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

Sie können auch mit Lambda-Ausdrücke, dies zu tun, das ist ein bisschen „saubere“.

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

Sie können dies dann Haken bis zu Ihrer Order-Klasse wie folgt, wenn Sie wollen:

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top