Wenn bei der folgenden Abfrage keine Leads gefunden werden, löst die folgende Abfrage eine Ausnahme aus. In diesem Fall würde ich es vorziehen, wenn die Summe 0 ist, anstatt dass eine Ausnahme ausgelöst wird. Wäre dies in der Abfrage selbst möglich - ich meine, anstatt die Abfrage zu speichern und zu überprüfen query.Any()
?
double earnings = db.Leads.Where(l => l.Date.Day == date.Day
&& l.Date.Month == date.Month
&& l.Date.Year == date.Year
&& l.Property.Type == ProtectedPropertyType.Password
&& l.Property.PropertyId == PropertyId).Sum(l => l.Amount);
SQL
generiert wird. Amount
ist nicht wirklich null
, es ist wirklich ein Problem, wie es mit Null-Ergebnissen umgeht. Schauen Sie sich die Antwort an, die gegeben wurde.
decimal
, Ihr Code sollte verwenden decimal
. Vergessen Sie, dass Sie jemals von float
und double
in Ihrer Programmierkarriere gewusst haben, bis zu dem Tag, an dem Ihnen jemand sagt, dass Sie sie verwenden sollen, für Statistiken oder Sternleuchtdichte oder die Ergebnisse eines stochastischen Prozesses oder der Ladung eines Elektrons! Bis dahin machst du es falsch .
Where
würde nicht zurückkehren,null
wenn es keine Datensätze finden würde, es würde eine Liste von null Elementen zurückgeben. Was ist die Ausnahme?