Я добавляю пользователя и назначаю роль, как показано ниже, сначала я использую удостоверение ASP MVC 5 и код EF.
//some Code
var result = manager.Create(insert, applicationUser.PasswordHash);
IdentityResult result2 =null;
if (result.Succeeded)
{
result2 = manager.AddToRole(insert.Id, "User");
}
//Some Code
Поэтому мне нужно показать список пользователей с настраиваемой ролью в виде "Пользователь"роль.я написал этот код:
ApplicationDbContext myDbContext = new ApplicationDbContext();
var getRoleId = myDbContext.Roles.Where(r => r.Name == "User").Select(m => m.Id).SingleOrDefault();
var fetch = myDbContext.Users.Where(u => u.Roles.Any(r => r.RoleId.ToString() == getRoleId)).ToList();
return View(fetch);
getRoleId
значение равно "4", это правильно, но fetch
всегда считается равным 0. Я пытаюсь больше чем 3 4 часа, но я не могу получить результат.Где моя ошибка?и какое решение?Спасибо.
ОБНОВЛЕНИЕ: Я нашел свою проблему в добавлении роли, но я не знаю, как это исправить!При добавлении пользователей к ролям с использованием вышеизложенного идентификатор пользователя добавляется в столбец UserId таблицы UserRoles, но существует третий столбец с именем IdentityUser_Id, который всегда был нулевым.
Из любопытства я добавил своего пользователяИдентификатор этой колонки, а теперь все работает.приложение подобрало мою роль пользователя.
Мой следующий вопрос: могу ли я автоматически установить IdentityUser_Id?используя что-то похожее на UserManager.AddToRole (), который добавляет userId в оба столбца?