Настроить Asp. Net Базовые имена таблиц ApiAuthorizationDbContext - PullRequest
0 голосов
/ 14 апреля 2020

Я работаю с Asp. Net Идентификатор ядра и хочу изменить имена таблиц, которые генерируются по умолчанию ApiAuthorizationDbContext. Ради аргумента скажем, что я хочу изменить AspNetRoleClaims на MyRoleClaims.

Мой DbContext выглядит следующим образом:

public class MyDbContext : ApiAuthorizationDbContext<ApplicationUser>
{
    public MyDbContext(
        DbContextOptions<MyDbContext> options,
        IOptions<OperationalStoreOptions> operationalStoreOptions)
        : base(options, operationalStoreOptions)
    {

    }

    public DbSet<MyData> MyData { get; set; }
}

Я знаю, что если я наследовать напрямую от IdentityDbContext, тогда я могу указать некоторые сущности, но я не вижу способа сделать это с помощью ApiAuthorizationDbContext. Похоже, что единственное различие между ними состоит в следующих таблицах:

public DbSet<PersistedGrant> PersistedGrants { get; set; }
public DbSet<DeviceFlowCodes> DeviceFlowCodes { get; set; }

Итак, я полагаю, я мог бы создать свой DbContext на основе IdentityDbContext и добавить их вручную, но кажется, что я заново изобретать колесо. Есть ли способ указать эти имена таблиц, или мне действительно нужно построить это вручную из IdentityDbContext?

1 Ответ

1 голос
/ 20 апреля 2020

Переопределить OnModelСоздание в вашем ApiAuthorizationDbContext

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder); 

        modelBuilder.Entity<ApplicationUser>().ToTable("User");
        modelBuilder.Entity<IdentityRole>().ToTable("Role");
        modelBuilder.Entity<IdentityUserRole>().ToTable("UserRole");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaim");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogin");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...