日期:2014-05-17  浏览次数:20952 次

Lamba表达式的null值比较问题
为什么
                        
Goods entity = db.Goods.FirstOrDefault(o => o.GoodsName == content.Goods.GoodsName
                                        && o.GoodsModel == content.Goods.GoodsModel
                                        && o.GoodsColor ==null);

能查到值。而

string goodsSpec = null;
Goods entity = db.Goods.FirstOrDefault(o => o.GoodsName == content.Goods.GoodsName
                                        && o.GoodsModel == content.Goods.GoodsModel
                                        && o.GoodsColor ==goodsSpec);

却为空。
求解觉方法,我快无语凝咽。。。
null lambal FirstOrDefault EF

------解决方案--------------------
试试
&& (o.GoodsColor==goodsSpec 
------解决方案--------------------
  string.IsNullOrEmpty(o.GoodsColor))
------解决方案--------------------
你可以看看最终生成的SQL语句是什么。如果直接用null判断,生成的是GoodsColor is null,如果用变量,就会是GoodsColor = @p1,明白了吗?