Я решил эту проблему, создав представление со всеми необходимыми столбцами (включая роли) и добавив его в контекст.
аюсь вытащить всех своих пользователей Identity и связанных с ними ролей на страницу администрирования управления пользователями. Я думал, что это будет достаточно просто, но, видимо, нет. Я попробовал следующее решение:https://stackoverflow.com/a/43562544/5392786 но это не сработало до сих пор.
Вот что у меня так далеко:
ApplicationUser:
public class ApplicationUser : IdentityUser
{
public List<IdentityUserRole<string>> Roles { get; set; }
}
DbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
Идентификационный код запуска
services.AddIdentity<ApplicationUser, IdentityRole>(options => options.Stores.MaxLengthForKeys = 128)
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
Страница Razor, где я хочу отобразить список:
public class IndexModel : PageModel
{
private readonly UserManager<ApplicationUser> userManager;
public IndexModel(UserManager<ApplicationUser> userManager)
{
this.userManager = userManager;
}
public IEnumerable<ApplicationUser> Users { get; set; }
public void OnGetAsync()
{
this.Users = userManager.Users.Include(u => u.Roles).ToList();
}
}
Я получаю следующую ошибку при звонкеuserManager.Users.Include(u => u.Roles).ToList();
:
MySql.Data.MySqlClient.MySqlException: «Неизвестный столбец» u.Roles.ApplicationUserId »в« списке полей »