Vra

Die gebruik van LINQ na SQL, ek het 'n klas Orde met 'n versameling van OrderDetails. Die Orde Besonderhede het 'n eiendom genoem LineTotal wat Qnty x ItemPrice kry.

Ek weet hoe om 'n nuwe LINQ navraag van die databasis aan die orde totale vind nie, maar as ek het reeds die versameling van OrderDetails van die DB, is daar 'n eenvoudige metode om die bedrag van die LineTotal direk terug te keer uit die versameling ?

Ek wil graag aan die orde totale voeg as 'n eiendom van my klas Orde. Ek dink ek kon loop deur die versameling en bereken die som met 'n vir elke Order.OrderDetail, maar ek vermoed daar is 'n beter manier.

Was dit nuttig?

Oplossing

Jy kan dit doen LINQ om voorwerpe en die gebruik LINQ na die totale bereken:

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

Jy kan ook gebruik lambda-uitdrukkings om dit te doen, wat 'n bietjie "skoner".

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

Jy kan dan haak dit tot jou Order-klas soos hierdie as jy wil:

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top