В основному, коли я виконую наступний запит, якщо жодне відведення не відповідало, наступний запит кидає виняток. У такому випадку я вважаю за краще, щоб сума дорівнювала 0, а не кидалася виняток. Чи можливо це можливо в самому запиті - я маю на увазі, а не зберігання запиту та перевірку 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як формується. Amountнасправді nullце справді не проблема, коли вона обробляє нульові результати. Подивіться на відповідь, яка була надана.
decimal, ваш код повинен використовуватись decimal. Забудьте, що ви коли-небудь знали про floatта doubleв своїй кар’єрі програмування, до того моменту, коли хтось скаже вам їх використовувати, для статистики чи яскравості зірок або результатів стохастичного процесу або заряду електрона! До цього часу ви робите це неправильно .
WhereЧи не буде повертатися ,nullякщо він не знайшов яких - або записів, вона повертає список нульових елементів. Який виняток?