ich eine LINQ-Abfrage verwenden Summe einer Spalte zu finden, und es gibt eine geringe Chance, dass der Wert in wenigen Fällen null sein könnteHandelte null in LINQ Summe Ausdruck
Die Abfrage ich jetzt benutze ist
int score = dbContext.domainmaps.Where(p => p.SchoolId == schoolid).Sum(v => v.domainstatement.Score ?? 0);
wo domainstatement
kann null und Score sein auch null sein kann
Jetzt, nach dieser Abfrage ausgeführt wird, erhalte ich die Fehler
Der Cast-to-Value-Typ 'Int32' ist fehlgeschlagen, da der materialisierte Wert null ist. Entweder der generische Parameter des Ergebnistyps oder die Abfrage müssen einen Nullwerttyp verwenden.
Also, wie kann ich null Ausnahmen wirksam behandeln und Summe als INT-Wert zurückgeben?
int score = dbContext.domainmaps.Where (p => p.SchoolId == schoolid) .sum (v => (v? .domainstatement? .Score) .GetValueOrDefault()); Funktioniert das? Da der Standardwert für eine ganze Zahl 0 ist, sollte die Summierung dieser Funktion ohne Probleme funktionieren, aber ich weiß nicht, ob ich die Syntax korrekt habe. – thinklarge
Gibt es eine Domain-ID? –
Verwenden Sie wirklich LINQ-2-SQL statt EF? –