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

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

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

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

我正在使用实体框架 5.0。

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

谢谢

4

2 回答 2

3

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

确保它MyColumn是可以为空的类型来解决这个问题:除此之外,你的表达式是正确的,EF 会正确地将它转换为IS NULL.

于 2013-10-20T02:22:44.880 回答
1

是的,它应该像编辑一样工作:需要检查的潜在问题,该列是否在您的 edmx 中正确标记为可为空?我猜如果不是这可能是一个问题

于 2013-10-20T02:18:58.900 回答