我想知道为什么我的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();
试一试,看看是否有帮助。