您的位置:首页 > Web前端

Linq查询条件里有可空字段比较时报错variable '<>h__TransparentIdentifier2' of type referenced from scope '', but it is not defined

2014-10-16 12:32 537 查看
当我运行下面的linq查询时报了这个错,
1:varresult=(fromsoinsvcContext.new_sales_orderSet
2:joinsoiteminsvcContext.new_sales_order_itemSetonso.Idequalssoitem.new_sales_orderid.Id
[/code]
3:joinfpiteminsvcContext.new_fp_itemSetonsoitem.new_modelid.Idequalsfpitem.new_modelid.Id
4:joinfpinsvcContext.new_floor_priceSetonfpitem.new_fp.Idequalsfp.Id
5:whereso.Id==currentEntity.Id
6:&&soitem.new_invoice_price>fpitem.new_floor_price
7: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条件就可以了:
varresult=query.Where(q=>q!=null&&q.Value>0).ToList();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: