我想执行这样的查询
var result = from entry in table
where entry.something == null
select entry;
Run Code Online (Sandbox Code Playgroud)
并得到一个IS NULL生成.
编辑:在前两个答案后,我觉得有必要澄清我正在使用实体框架而不是Linq to SQL.object.Equals()方法似乎不适用于EF.
编辑2:上述查询按预期工作.它正确生成IS NULL.然而,我的生产代码是
value = null;
var result = from entry in table
where entry.something == value
select entry;
Run Code Online (Sandbox Code Playgroud)
并且生成的SQL是something = @p; @p = NULL.似乎EF正确地转换了常量表达式,但是如果涉及变量,它就像正常比较一样处理它.实际上是有道理的.我会结束这个问题