Domanda

Utilizzando LINQ to SQL, ho una classe Order con una raccolta di OrderDetails.I dettagli dell'ordine hanno una proprietà chiamata LineTotal che ottiene Qnty x ItemPrice.

So come eseguire una nuova query LINQ del database per trovare il totale dell'ordine, ma poiché ho già la raccolta di OrderDetails dal DB, esiste un metodo semplice per restituire la somma di LineTotal direttamente dalla raccolta?

Vorrei aggiungere il totale dell'ordine come proprietà della mia classe Order.Immagino di poter scorrere la raccolta e calcolare la somma con a per ogni Order.OrderDetail, ma suppongo che ci sia un modo migliore.

È stato utile?

Soluzione

Puoi eseguire LINQ to Objects e utilizzare LINQ per calcolare i totali:

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

Puoi anche usare le espressioni lambda per farlo, che è un po' "più pulito".

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

Puoi quindi collegarlo alla tua classe Order in questo modo se vuoi:

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top