Я хочу получить:Как получить список всех ApplicationUsers, которые находятся в определенной роли из базы данных по выражению LINQ?
- список
ApplicationUsers
, которые находятся в роли"NormalUser"
никому - список всех
ApplicationUsers
только лишь Admins.
Я сделал это:
// GET: ApplicationUsers
public ActionResult Index() {
// if you are Admin you will get all users
if (User.IsInRole("Admin"))
return View(db.Users.ToList());
//if you are somebody else(not Admin) you will see only list of NormalUsers
//HERE I GET ERROR
var list = db.Users.Where(x => UserManager.IsInRole(x.Id, "NormalUser")).ToList(); // here I get error
return View(list);
}
UserManager внутри кода выше: UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
Но, к сожалению, мой LINQ expresiion неверен. Я получаю сообщение об ошибке:
LINQ to Entities does not recognize the method 'Boolean IsInRole[ApplicationUser,String](Microsoft.AspNet.Identity.UserManager`2[WebApplication2.Models.ApplicationUser,System.String], System.String, System.String)' method, and this method cannot be translated into a store expression.
Вопрос: Как правильно получить список пользователей, которые в роли "NormalUser"
?
Каким образом роли хранятся у пользователя приложения? Это одна роль для каждого пользователя или может принадлежать одному пользователю к нескольким ролям? Я добавлю answe, посмотрим, как это для вас. –