У меня проблема с заполнением пользовательских ролей, и я не могу найти решение.У меня есть список ролей для пользователя, но я не знаю, как отправить его в модель.Мой код:
ApplicationUser
namespace WebApp.Models
{
public class ApplicationUser : IdentityUser
{
public ApplicationUser() : base() { }
public string FirstName { get; set; }
public string LastName { get; set; }
public IEnumerable<ApplicationRole> UserRoles { get; set; }
}
}
ApplicationRole
namespace WebApp.Models
{
public class ApplicationRole : IdentityRole
{
public ApplicationRole() : base() { }
public ApplicationRole(string roleName) : base(roleName) { }
public ApplicationRole(string roleName, string description, DateTime creationDate) : base(roleName)
{
this.Description = description;
this.CreationDate = creationDate;
}
public string Description { get; set; }
public DateTime CreationDate { get; set; }
}
}
AdminController
public async Task<IActionResult> UserList(ApplicationUser ApplicationUser)
{
var users = await _userManager.Users.ToListAsync();
foreach (var v in users)
{
var userId = await _userManager.GetUserIdAsync(v);
var user = _context.Users.Where(u => u.Id == userId).FirstOrDefault();
user.UserRoles = _userManager.GetRolesAsync(v);
_context.SaveChanges();
}
var usersList = _context.Users.ToList();
return await Task.Run(() => View(usersList));
}
user.UserRoles = _userManager.GetRolesAsync (v);
причина ошибки
Код серьезности Описание Ошибка состояния подавления строки файла проекта CS0266 Не удается неявно преобразовать тип 'System.Threading.Tasks.Task>' в 'System.Collections.Generic.IEnumerable.Существует явное преобразование (вы пропустили приведение?)
// Ошибка РЕДАКТИРОВАНИЯ, вызванная отсутствием асинхронизации, но теперь это ошибка
Код серьезности Описание Подавление строки файла проектаОшибка состояния CS0266 Невозможно неявно преобразовать тип 'System.Collections.Generic.IList' в 'System.Collections.Generic.IEnumerable'.Существует явное преобразование (вам не хватает приведения?) WebApp
Как преобразовать данные для заполнения UserRoles?