我正在创建一种收集整个月累计总数的方法。问题是给定月份的某些项目可能不收费,因此不会返回任何行。
我可以看到在没有数据的情况下这会如何出错:
double fuelCost = (double)(from a in db.EquipmentFuelLogs
where a.wdEquipmentMainGeneralOID == vehicleKey &&
(monthBeginDate < a.Date1 && a.Date1 < monthEndDate)
select a.TotalCost).Sum();
检测该月无燃料交易并将燃料成本设置为 0 的最佳方法是什么?只是尝试一下吗?本文谈到了问题但没有解决方案。
问题是因为 where 没有返回任何序列,因此总和无法工作,但是如果您使用.DefaultIfEmpty
在求和之前它工作正常。
decimal? orderValue =
orders.Where(ee => ee.Name == "SomeName").DefaultIfEmpty().Sum(s => s.OrderCost);
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)