So bin ich bei der Verwendung von linq immer auf diese Situation gestoßen. Sagen wir, ich habe Code wie unten:Summe der Linq-Werte in Select
var results = _context.Products.Select(d =>
new Models.ProductData()
{
Id = d.ProductId,
Name = d.Product.Name,
Qty = d.Number.Where(y => y.Active && y.CodeId == 5 && y.Status == "NEW").Sum(y => y.FeeAmount),
Qty1= d.Number.Where(y => y.Active && y.CodeId == 7 && y.Status == "NEW").Sum(y => y.Fee),
Total = d.Number.Where(y => y.Active && y.CodeId == 5 && y.Status == "NEW").Sum(y => y.FeeAmount) + d.Number.Where(y => y.Active && y.CodeId == 7 && y.Status == "NEW").Sum(y => y.Fee)
}
);
Für den Gesamtwert, gibt es einen besseren Weg, um die Gesamt zu berechnen, ohne die Linq Aussagen alle mit + Symbole zu schreiben, dazwischen? Es wäre viel schöner sein, um so etwas wie
Total = Qty + Qty1
schreiben
ich die Summe aus dem anfänglichen Mapping weglassen könnte und das remap es durch Id Gruppierung und die Summen dort die Zuordnung durch Bezugnahme auf Total = Anzahl + Qty1 aber die scheint sich nur herum zu drehen.
Alle Vorschläge sind willkommen.
Warum nicht "Total" eine schreibgeschützte Eigenschaft mit einem Getter, der 'Qty + Qty1' zurückgibt? In diesem Fall müssen Sie es nicht an erster Stelle setzen – KMoussa
Da 'Total' ein berechneter Wert ist, wäre es ein schlechtes Design, um sich an seinen eigenen Wert zu erinnern, was passiert, wenn Sie' Qty1' später ändern, dann würden Sie das auch tun muss 'Total' aktualisieren. Was machst du wenn 'Menge' +' Menge1'! = 'Summe'? –