首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取角色中的所有用户。ASP.NET身份

获取角色中的所有用户。ASP.NET身份
EN

Stack Overflow用户
提问于 2016-03-29 17:24:13
回答 3查看 6.6K关注 0票数 5

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

var users = UserManager.Users.ToList();

我可以找到这样的角色

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

我想在AspNetRoles表(我有UserAdmin)中列出角色名为"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。没有编译错误。

EN

回答 3

Stack Overflow用户

发布于 2016-03-29 17:32:51

var usersInRole = db.Users.Where(m => m.Roles.RoleId == role.Id)).ToList();

您搜索所有用户并返回符合特定角色id的用户

票数 2
EN

Stack Overflow用户

发布于 2016-03-29 17:32:38

你有没有尝试过使用导航属性延迟加载?

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

Stack Overflow用户

发布于 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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36280251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档