我可以像这样得到所有的用户
var users = UserManager.Users.ToList();
我可以找到这样的角色
var role = db.Roles.SingleOrDefault(m => m.Name == "User");
我想在AspNetRoles表(我有User
和Admin
)中列出角色名为"User“的所有用户。
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
。没有编译错误。
发布于 2016-03-29 17:32:51
var usersInRole = db.Users.Where(m => m.Roles.RoleId == role.Id)).ToList();
您搜索所有用户并返回符合特定角色id的用户
发布于 2016-03-29 17:32:38
你有没有尝试过使用导航属性延迟加载?
var role = db.Roles.SingleOrDefault(m => m.Name == "User");
var usersInRole = role.Users;
发布于 2016-03-30 02:29:05
您可以使用基于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();
https://stackoverflow.com/questions/36280251
复制相似问题