繁体   English   中英

LINQ 不评估空对象的检查

[英]LINQ not evaluating check for null object

我想知道为什么我的 linq 语句没有正确评估对作为 Users 模型属性的 Agency 对象的空检查。

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

当我运行上面的代码时,第一行返回所有用户的列表,无论代理对象是否为空。 但是,第二行执行并正确过滤列表并返回正确返回用户的列表,其中代理不为空。

很可能因为这似乎是一个外键表,您需要首先将它包含在 LINQ 中,以便它可以查询它。

所以类似的东西。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM