我们有一个基于EDMX的EF6应用程序,我们想在其中运行这样的LINQ查询。
string category = ... // comes from somewhere and equals to null
context.Product.Where(e => e.Category == category).ToArray();
我看到的问题是,生成的SQL包含[table].[Category] = @p...
在where子句中,无论变量的category
存在null
与否。因此,在一天结束时,如果变量为null
,则查询不会返回任何结果,而不是生成适当的is null
条件并返回适当的行。
我已经测试了显式e => e.Category == null
表达式,并且确实生成了is null
预期的表达式。
我还检查了EDMX和SQL,并且相应的Category
列实际上在两个地方都为空,因此这可能不是问题。
任何帮助,将不胜感激。
尝试设置context.Configuration.UseDatabaseNullSemantics
为false
。这是影响上述行为的属性。
在这里查看文档
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句