我需要一些Linq语句的语法帮助。整个语句冗长,并根据我没有设计控制的SQL Server数据库进行选择。
在我选择的新短语中,我有以下专栏;
on_Hand_Qty1 = (from x1 in Material_Locations
where x1.Material == j.Part_Number
&& x1.Location_ID != "MSSICONSMT"
select x1.On_Hand_Qty ?? 0.0).Sum()
,
在LINQPad中我得到一个错误: 接线员'??'不能应用于'double'和'double'类型的操作数
我正在使用??因为子查询有可能不返回任何记录。在这种情况下,该值应为零。
我已经尝试将值转换为(double)和(double?)但我仍然得到了相同的错误。 Ĵ
我在声明中的其他位置执行类似的子选择,它可以正常工作;
Consignment = (from x in Material_Locations
where x.Material == j.Part_Number
&& x.Location_ID == "MSSICONSMT"
select(float?) x.On_Hand_Qty ?? 0.0 ).ToList()
我在这里缺少什么?
谢谢!
答案 0 :(得分:0)
感谢您帮助查找参考资料。我无法弄清楚如何谷歌。
此语法可以正常工作。
on_Hand_Qty1 = Material_Locations
.Where (ml => ml.Material == j.Part_Number && ml.Location_ID != "MSSICONSMT" )
.Sum (ml => (double?)ml.On_Hand_Qty) ?? 0,