【发布时间】:2018-01-26 21:45:54
【问题描述】:
我正在尝试根据我的应用程序中的特定角色查找所有用户。我目前有两个角色管理员和用户。当我尝试使用以下 linq 查询返回具有“用户”角色的用户列表时:
var users = context.Users
.Where(u => u.Roles.Select(r => r.RoleId).Contains("User")).ToList();
它返回 0 个用户。我在这里看过类似的问题,但其中许多现在已经过时了。例如,我知道 RoleID 是一个散列键,而我正在搜索的是纯文本“用户”。
【问题讨论】:
-
FWIW,id 不是“散列键”,而是 GUID,作为字符串而不是实际的
Guid。这是 Identity 团队的一个有争议的选择,旨在实现最大程度的兼容性。不过,您可以将其更改为不同的类型,例如int。请参阅:docs.microsoft.com/en-us/aspnet/identity/overview/extensibility/…。但是,这些都不会对您的问题产生有意义的影响。 -
总是很高兴了解更多背景信息,谢谢克里斯
标签: asp.net-mvc linq asp.net-identity