我正在尝试根据应用程序中的特定角色查找所有用户。我目前有两个角色Admin和User。当我尝试使用以下linq查询返回具有“User”角色的用户列表时:
var users = context.Users
.Where(u => u.Roles.Select(r => r.RoleId).Contains("User")).ToList();
它返回0个用户。我在这里看过类似的问题,但其中很多都已经过时了。我知道RoleID例如是一个哈希键,我要搜索的是纯文本“User”。
答案 0 :(得分:3)
RoleId
与实际的角色名称字符串不同,这就是为什么您没有获得任何匹配的原因。您需要这样做的方式是:
var roleId = context.Roles.Where(m => m.Name == "User").Select(m => m.Id).SingleOrDefault();
然后:
var users = context.Users
.Where(u => u.Roles.Any(r => r.RoleId == roleId)).ToList();