我在使用Entity Framework中的数据上下文选择数据时遇到了问题,经过排查,发现是查询null值的问题。我的方法如下:
public void DoStuff(int? someInt)
{
var someData = dataContext.MyEntities.Where(x => x.SomeProperty == someInt);
// someData always yields no results if someInt is null, even though
// there are rows in the table that have null for that column.
}
如果
someInt
为空,则上述方法会失败。但是这行代码可以正常运行:var someData = dataContext.MyEntities.Where(x => x.SomeProperty == null);
为什么我在第二个中获得数据,而在第一个中却没有?
someInt.Value
。可空类型实际上并不为 null,但其值为 null。 - Erik Funkenbuschint?
的.Value
是int
类型,不能为 null。 - Chev