2016-02-08 48 views
1

在ASP.NET的身份,我们有以下表获取用户角色和附属ID用户

  • 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(); 

但后来我得到这个错误

“AspNetUser”不包含“名称”的定义,并没有扩展 方法“名称”

回答

2

您在AspNetUsers寻找ROLENAME表,那不存在。 如果你想获得有Subsidiary_ID ==“04”的用户,他们是在用角色名角色==“审批”,那么你必须查询是这样的:

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

感谢这个工作 – kez