繁体   English   中英

为什么 Where 子句不能在 LINQ 中使用虚拟属性

[英]Why Where clause in not working with Virtual property in LINQ

我正在尝试做这样的事情

var users = await _dbContext.Users.AsNoTracking().AsQueryable()
    .Include(user => user.AdminRoles)
    .Where(u => u.AdminRoles.Roles.Contains("admin2022"))
    .ToListAsync();

这里的列表得到 0 个结果,但是当我这样做时

var users = (await _dbContext.Users.AsNoTracking().AsQueryable()
     .Include(user => user.AdminRoles).ToListAsync())
         .Where(u => u.AdminRoles.Roles.Contains("admin2022"))
         .ToList();

然后它会产生所有需要的结果。 有人可以帮助我如何使第一种方式起作用吗?

尝试:

var users = await _dbContext.Users
    .AsNoTracking()
    .AsQueryable()
    .Include(user => user.AdminRoles.Where(x => x.Roles.Contains("admin2022")))
    .ToListAsync();

暂无
暂无

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

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