Basicamente, quando faço a consulta a seguir, se nenhum lead for correspondido, a consulta a seguir gera uma exceção. Nesse caso, eu preferiria que a soma igualasse 0, em vez de uma exceção ser lançada. Isso seria possível na própria consulta - quero dizer, em vez de armazenar a consulta e verificar 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
é gerado. Amount
não é realmente null
, é realmente um problema envolvendo como ele lida com zero resultados. Dê uma olhada na resposta que foi fornecida.
decimal
, seu código deve ser usado decimal
. Esqueça que você já conheceu float
e double
em sua carreira de programador até o dia em que alguém lhe disser para usá-los, para estatísticas ou luminância estelar ou os resultados de um processo estocástico ou carga de um elétron! Até então, você está fazendo errado .
Where
não retornarianull
se não encontrasse nenhum registro, retornaria uma lista de zero itens. Qual é a exceção?