Zasadniczo, gdy wykonuję następujące zapytanie, jeśli nie zostaną dopasowane żadne potencjalne szanse, poniższe zapytanie zgłasza wyjątek. W takim przypadku wolałbym, aby suma wyrównała 0, zamiast zgłaszania wyjątku. Czy byłoby to możliwe w samym zapytaniu - mam na myśli raczej niż zapisywanie zapytania i sprawdzanie 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
generowania. Amount
tak naprawdę nie jest null
, to naprawdę problem z tym, jak radzi sobie z zerowymi wynikami. Spójrz na udzieloną odpowiedź.
decimal
, twój kod powinien użyć decimal
. Zapomnij, że kiedykolwiek znał float
i double
w swojej karierze programowania aż do dnia, ktoś powie Ci, aby ich użyć do celów statystycznych lub gwiazdy luminancji lub wynikach stochastycznego procesu lub ładunku elektronu! Do tego czasu robisz to źle .
Where
Nie wrócinull
, jeśli nie znaleźliśmy żadnych rekordów, to zwróci listę elementów zerowych. Jaki jest wyjątek?