[英]Get all users within a role. ASP.NET Identity
我可以得到這樣的所有用戶
var users = UserManager.Users.ToList();
我可以找到這樣的角色
var role = db.Roles.SingleOrDefault(m => m.Name == "User");
我想在AspNetRoles表中列出角色名為“User”的所有用戶(我有User
和Admin
)。
var role = db.Roles.SingleOrDefault(m => m.Name == "User");
var usersInRole = db.Users.Where(m => m.Roles.Any(r => r.RoleId == role.Id)).ToList();
return View(usersInRole);
我在var role
獲得角色,但是當我調試時, userInRole
給了我Count = 0
。 沒有編譯錯誤。
您可以使用以下代碼檢索特定角色(Identity 2.xx)中的所有用戶:
var users = await _userManager.GetUsersInRoleAsync("RoleName");
或同步使用:
var users = _userManager.GetUsersInRoleAsync("RoleName").Result;
var usersInRole = db.Users.Where(m => m.Roles.RoleId == role.Id)).ToList();
您搜索所有用戶並返回符合特定角色ID的用戶
您是否嘗試使用導航屬性Lazy Loading?
var role = db.Roles.SingleOrDefault(m => m.Name == "User");
var usersInRole = role.Users;
您可以使用如下所示的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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.