简体   繁体   English

按用户角色和附属ID获取用户

[英]Get users by user role and subsidiary ID

In ASP.NET Identity we have following tables 在ASP.NET Identity中,我们有以下表格

  • AspNetUsers
  • AspNetRoles
  • AspNetUserRoles

Additionally I added the following column to the AspNetUsers table 此外,我AspNetUsers下列添加到AspNetUsers表中

  • Subsidiary_ID

Now I want to load a list with following filters 现在,我想使用以下过滤器加载list

  • RoleName == "Approver" RoleName ==“批准人”
  • Subsidiary_ID == "04" Subsidiary_ID ==“ 04”

So for that purpose I'm trying to write query like below 因此,为此,我尝试编写如下查询

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

but then I'm getting this error 但是然后我得到这个错误

'AspNetUser' does not contain a definition for 'Name' and no extension method 'Name' “ AspNetUser”不包含“名称”的定义,也没有扩展方法“名称”

You are searching for roleName in AspNetUsers table, that does not exist. 您正在AspNetUsers表中搜索roleName,该名称不存在。 If you want to get the users that have Subsidiary_ID == "04" and they are in role with RoleName == "Approver" then you must query like this: 如果要获取具有Subsidiary_ID ==“ 04”的用户,并且这些用户具有RoleName ==“ Approver”的角色,则必须这样查询:

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

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

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