Как я могу создать настраиваемого пользователя и роль с помощью удостоверения ASP.NET Core v Preview 3.0? - PullRequest
1 голос
/ 24 мая 2019

Когда я создаю миграцию, я получаю сообщение об ошибке, примерно так:

System.InvalidOperationException: Cannot create a DbSet for 'IdentityRole' because this type is not included in the model for the context.

System.InvalidOperationException: Cannot create a DbSet for 'UserApp' because this type is not included in the model for the context.

Да, у меня нет этих столбцов в моем контексте, но в предыдущей версии, это работает без этого. Мой код:

public class UserApp: IdentityUser
{
    [PersonalData]
    public int Year { get; set; }

    [PersonalData]
    public string Country { get; set; } 

    public List<Product> products { get; set; }
}

и контекстный класс:

public class ApplicationContext:DbContext
{
    public ApplicationContext()
    {

    }

    //public ApplicationContext(DbContextOptions options) : base(options) { }
    public ApplicationContext(DbContextOptions<ApplicationContext> dbContext) : base(dbContext)
    {

    } 

с некоторым набором данных. В классе запуска у меня есть:

services.AddIdentity<UserApp, IdentityRole>(o =>
{
    o.Password.RequireDigit = false;

    o.Password.RequireLowercase = false;

    o.Password.RequireUppercase = false;

    o.Password.RequireNonAlphanumeric = false;

    o.Password.RequiredLength = 6;
})
  .AddEntityFrameworkStores<ApplicationContext>()
  .AddDefaultTokenProviders(); 

Что не так? И действительно, в этой версии я должен добавить в свой контекст свойство пользователя и роли?

1 Ответ

2 голосов
/ 25 мая 2019

Проблема в том, что ваш ApplicationContext наследует DbContext вместо IdentityDbContext. Таким образом, ваш ApplicationContext должен быть следующим:

public class ApplicationContext : IdentityDbContext<UserApp, IdentityRole, string>
{
    public ApplicationContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...