C# 获取角色中的所有用户。ASP.NET标识

C# 获取角色中的所有用户。ASP.NET标识,c#,asp.net,asp.net-identity,asp.net-roles,C#,Asp.net,Asp.net Identity,Asp.net Roles,我可以得到所有这样的用户 var users = UserManager.Users.ToList(); var role = db.Roles.SingleOrDefault(m => m.Name == "User"); 我能找到这样的角色 var users = UserManager.Users.ToList(); var role = db.Roles.SingleOrDefault(m => m.Name == "User"); 我想在AspNetRoles表中列

我可以得到所有这样的用户

var users = UserManager.Users.ToList();
var role = db.Roles.SingleOrDefault(m => m.Name == "User");
我能找到这样的角色

var users = UserManager.Users.ToList();
var role = db.Roles.SingleOrDefault(m => m.Name == "User");
我想在AspNetRoles表中列出角色名为“User”的所有用户(我有
User
Admin


我在
var-role
中获得角色,但是
userInRole
在调试时为我提供
Count=0
。没有编译错误。

是否尝试使用导航属性延迟加载

var role = db.Roles.SingleOrDefault(m => m.Name == "User");
var usersInRole = role.Users;

搜索所有用户并返回符合特定角色id的用户。您可以使用Linq表达式基查询,如下所示:

var roleUserIdsQuery=from role in db.Roles 
                where role.Name=="User"
                from user in role.Users
                select user.UserId;
var users=db.Users.Where(u=>roleUserIdsQuery.Contains(u.Id)).ToList();

您可以使用以下代码检索特定角色(标识2.x.x)中的所有用户:

或对于同步使用:

var users = _userManager.GetUsersInRoleAsync("RoleName").Result;

请用英语解释你的答案。真正地它相当自我解释请选择作为答案如果这有帮助这给了我一个关于
m.Roles.RoleId
RoleId
的错误,我在VS intellisense.error中找不到
Id
RoleId
“传递到字典中的模型项的类型是'System.Collections.Generic.List
1[Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole]',但此词典需要“System.Collections.Generic.IEnumerable”类型的模型项。
1[Dignitana.Models.ApplicationUser]'
var users = _userManager.GetUsersInRoleAsync("RoleName").Result;