Ich möchte eine Summe senden, nachdem ich mehrere Felder in der Datenbank gesammelt habe. Aber ich muss die Felder als Zeichenfolge schreiben. Ich bin vielleicht nicht in der Lage, mein Problem vollständig zu erklären, ich werde versuchen, es zu veranschaulichen.Linq dynamische Summe
Was möchte ich tun, ist in diesem Lambda-Staates Code
ich tun möchte:
expression = x => x.M1_TotalLoss + x.M2_TotalLoss;
Mein Code:
var param = Expression.Parameter(typeof(FooDomain), "x");
var value = Expression.Property(param, ("M1_TotalLoss"+"M2_TotalLoss"));
var rest = Expression.Lambda<Func<FooDomain, double>>(value, param);
var result = myContext.FooDomain().
GroupBy(gp=>gp.Year).
Select(s => new
{
TotalLoss = Math.Round(s.AsQueryable().Sum(rest), 2)
}).
OrderByDescending(o => o.TotalLoss).
ToList();
Aber da kann ich nicht schreiben das Prädikat richtig, erhalte ich den folgenden Fehler:
exceptionMessage = Beispielmerkmal 'M1_TotalLossM2_TotalLoss' nicht für Typ 'FooDomain' definiert.
Eigentlich war es ein einfaches question.I nicht sehen expression.add Ich bin gekommen, meine Frage zu beantworten Dann sah ich deine Antwort, die ich als Anser gemacht habe. Danke vielmals –