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. Amountnã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 floate doubleem 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 .
Wherenão retornarianullse não encontrasse nenhum registro, retornaria uma lista de zero itens. Qual é a exceção?