按用户角色和子公司ID获取用户

时间:2016-02-08 10:55:30

标签: c# asp.net-mvc linq asp.net-identity

在ASP.NET Identity中,我们有以下表格

  • AspNetUsers
  • AspNetRoles
  • AspNetUserRoles

此外,我将以下列添加到AspNetUsers

  • Subsidiary_ID

现在我想加载一个带有以下过滤器的list

  • RoleName =="审批人"
  • Subsidiary_ID ==" 04"

为此,我试图编写如下的查询

List<AspNetUser> approverprofiles = db.AspNetUsers.Where(w => w.Subsidary_ID == "04").Where(w => w.Name == "Approver").ToList();

然后我收到此错误

  

&#39; AspNetUser&#39;不包含&#39;姓名&#39;的定义没有延伸   方法&#39;名称&#39;

1 个答案:

答案 0 :(得分:2)

您正在AspNetUsers表中搜索不存在的roleName。 如果您想获得具有Subsidiary_ID ==&#34; 04&#34;他们在RoleName ==&#34; Approver&#34;那么你必须这样查询:

 List<AspNetUser> approverprofiles = db.AspNetUsers
    .Where(w => w.Subsidary_ID == "04" && w.Roles.Any(r => r.Name == "Approver"))
    .ToList();