我正在创建一种方法来收集整个月的累计总数.问题是某个月内某些项目可能没有收费,因此不会返回任何行.
@H_403_2@我可以看到没有数据会出现这种错误:
double fuelCost = (double)(from a in db.EquipmentFuelLogs where a.wdEquipmentMainGeneralOID == vehicleKey && (monthBeginDate < a.Date1 && a.Date1 < monthEndDate) select a.TotalCost).Sum();@H_403_2@检测当月没有燃料交易并将燃料成本设定为0的最佳方法是什么?试试看吧? This article谈到了这个问题,但没有解决方案.
解决方法
问题是因为where返回没有序列因此总和不能工作,但是如果在sum之前使用.DefaultIfEmpty它可以正常工作.
decimal? orderValue = orders.Where(ee => ee.Name == "SomeName").DefaultIfEmpty().Sum(s => s.OrderCost);@H_403_2@希望这可以帮助.