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);
SQLgeneriert wird. Amountist 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 floatund doublein 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 .
Wherewürde nicht zurückkehren,nullwenn es keine Datensätze finden würde, es würde eine Liste von null Elementen zurückgeben. Was ist die Ausnahme?