我有一个名为“test”的表,该表只有1列“NullableInt”(nullable int类型)

记录为:1、2,空

int? nullableInt = null;
var t = db.tests.Where(x => x.NullableInt == null).ToList(); // returns 1 record
var t2 = db.tests.Where(x => x.NullableInt == nullableInt).ToList(); // returns 0 records

出于某种原因,t2返回0条记录,即使它使用的是“nullableInt”变量,该变量的值也为null,就像t与“null”进行比较

任何帮助将不胜感激!

最佳答案

查询可以通过以下方式构建:

var q = db.tests;
if(nullableInt.HasValue)
{
   q = q.Where(x => x.NullableInt == nullableInt.Value);
}
else
{
   q = q.Where(x => x.NullableInt == null);
}
var t2 = q.ToList();

关于c# - 如果使用可为空的int变量,LINQ返回0个结果,如果使用 "null",则返回准确的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4953399/

10-13 03:15