LINQ不执行null对象检查



我想知道为什么我的linq语句不能正确地评估代理对象上的空检查,这是用户模型的属性。

var invalidUsers = this.DbContext.Users.Where(p => p.Agency != null).ToList();    
var invalidUsersList = invalidUsers.Where(p => p.Agency != null).ToList();

当我运行上面的代码时,第一行返回所有Users的列表,而不管代理对象是否为空。然而,第二行执行并正确过滤列表并返回一个正确返回Users的列表,其中Agency不为空。

由于这似乎是一个外键表,因此您需要首先将其包含在LINQ中,以便可以对其进行查询。

比如。

var invalidUsers = await this.DbContext.Users
.Include(p => p.Agency)
.Where(p => p.Agency != null)
.ToListAsync();  

试一试,看看是否有帮助。

相关内容

  • 没有找到相关文章

最新更新