linq-to-sql – Linq to Sql Sum没有记录

前端之家收集整理的这篇文章主要介绍了linq-to-sql – Linq to Sql Sum没有记录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一种方法来收集整个月的累计总数.问题是某个月内某些项目可能没有收费,因此不会返回任何行.

我可以看到没有数据会出现这种错误

double fuelCost = (double)(from a in db.EquipmentFuelLogs
                           where a.wdEquipmentMainGeneralOID == vehicleKey &&    
                                (monthBeginDate < a.Date1 && a.Date1 < monthEndDate)
                           select a.TotalCost).Sum();

检测当月没有燃料交易并将燃料成本设定为0的最佳方法是什么?试试看吧? This article谈到了这个问题,但没有解决方案.

解决方法

问题是因为where返回没有序列因此总和不能工作,但是如果在sum之前使用.DefaultIfEmpty它可以正常工作.
decimal? orderValue = 
    orders.Where(ee => ee.Name == "SomeName").DefaultIfEmpty().Sum(s => s.OrderCost);

希望这可以帮助.

原文链接:https://www.f2er.com/mssql/78433.html

猜你在找的MsSQL相关文章