LINQ选择列值为空的行

时间:2013-10-20 02:16:34

标签: c# linq entity-framework

var myRows = myContext.MyTable
    .Where(v => v.MyColumn == null);

这不会从表中选择任何行,即使有很多行“MyColumn为null”?

我需要选择MyColumn包含null的行。

我意识到在T-SQL中我必须使用“IS NULL”运算符,但是如何在Linq中选择我想要的行?

我正在使用Entity Framework 5.0。

如果这应该有效,请告诉我,因为我的错误必须在其他地方。

由于

2 个答案:

答案 0 :(得分:3)

这可能不起作用的一个常见原因是,如果您将可以为空的数据库列(例如,MyColumn INTEGER NULL)映射到C#类的不可空字段(例如,int MyColumn而不是{ {1}})。

确保int? MyColumn具有可空类型以解决此问题:除此之外,您的表达式是正确的,EF会正确地将其翻译为MyColumn

答案 1 :(得分:1)

是的它应该按原样运行 编辑:要检查的潜在事项,是否在您的edmx中正确标记为可为空的列?我猜是否可能是一个问题