在 ASP.NET 身份中,我们有下表
-
AspNetUsers
-
AspNetRoles
-
AspNetUserRoles
此外,我将以下列添加到AspNetUsers
表中
-
Subsidiary_ID
现在我想加载一个带有以下过滤器的list
- 角色名称 == "审批者"
- Subsidiary_ID == "04"
因此,为此目的,我正在尝试编写如下所示的查询
List<AspNetUser> approverprofiles = db.AspNetUsers.Where(w => w.Subsidary_ID == "04").Where(w => w.Name == "Approver").ToList();
但是我收到此错误
"AspNetUser"不包含"名称"的定义,也没有扩展名 方法"名称"
您正在 AspNetUsers 表中搜索不存在的角色名称。如果要获取具有 Subsidiary_ID == "04" 的用户,并且他们的角色具有 RoleName == "审批者",则必须像这样查询:
List<AspNetUser> approverprofiles = db.AspNetUsers
.Where(w => w.Subsidary_ID == "04" && w.Roles.Any(r => r.Name == "Approver"))
.ToList();