Linq查询条件里有可空字段比较时报错variable '<>h__TransparentIdentifier2' of type referenced from scope '', but it is not defined
当我运行下面的linq查询时报了这个错,
1: var result = (from so in svcContext.new_sales_orderSet
2: join soitem in svcContext.new_sales_order_itemSet on so.Id equals soitem.new_sales_orderid.Id3: join fpitem in svcContext.new_fp_itemSet on soitem.new_modelid.Id equals fpitem.new_modelid.Id4: join fp in svcContext.new_floor_priceSet on fpitem.new_fp.Id equals fp.Id5: where so.Id == currentEntity.Id6: && soitem.new_invoice_price > fpitem.new_floor_price7: select (soitem.new_invoice_price - fpitem.new_floor_price) * soitem.new_qty
8: ).ToList();
找了半天原因,才发现是这里的原因:
&& soitem.new_invoice_price > fpitem.new_floor_price
因为这二个字段都是Decimal?,有些值是null,比较起来就报错了。
把这个条件去掉,然后再加上where条件就可以了:
var result = query.Where(q => q != null && q.Value > 0).ToList();
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
分类:
c#
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?