I am creating a method that collects accumulated totals throughout the month. The problem is that there may not be charges for some of the items in a given month so no rows would be returned.
I can see how this would error with no data:
double fuelCost = (double)(from a in db.EquipmentFuelLogs
where a.wdEquipmentMainGeneralOID == vehicleKey &&
(monthBeginDate < a.Date1 && a.Date1 < monthEndDate)
select a.TotalCost).Sum();
What is the best approach to detect no fuel transactions for that month and set the fuel cost to 0? Just do a try catch? This article spoke of the problem but no solution.
I resolved:
The issue is because the where is returning no sequence therefor the sum cannot work, however if you use
.DefaultIfEmpty
before the sum it works fine.Hope this helps.
I added a catch to catch the error. I never found a different solution.