Fondamentalmente quando eseguo la seguente query, se non sono stati trovati lead corrispondenti, la query seguente genera un'eccezione. In tal caso, preferirei che la somma fosse pari a 0 anziché generare un'eccezione. Ciò sarebbe possibile nella query stessa - intendo piuttosto che archiviare la query e verificarla 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);
SQLviene generato. Amountnon è in realtà null, è davvero un problema che circonda il modo in cui gestisce zero risultati. Dai un'occhiata alla risposta che è stata fornita.
decimal, il tuo codice dovrebbe usare decimal. Dimentica che hai mai conosciuto floate doublenella tua carriera di programmatore fino al giorno in cui qualcuno ti dice di usarli, per statistiche o luminanza delle stelle o i risultati di un processo stocastico o la carica di un elettrone! Fino ad allora, stai sbagliando .
Wherenon sarebbe tornatonullse non ha trovato alcun record, sarebbe restituirà un elenco di zero elementi. Qual è l'eccezione?