Как обновить существующую БД пользователями Identity и ролями в .net core 2.1? - PullRequest
0 голосов
/ 30 марта 2019

Я использую кодовый шаблон для создания БД.У меня уже есть настройка DbContext / DB.Теперь я решил добавить поддержку аутентификации, используя Identity.EntityFrameworkCore.Я создал еще один DbContext для таблиц, связанных с идентификацией, как показано ниже:

public class AccountDbContext:IdentityDbContext
    {
        public AccountDbContext(DbContextOptions<AccountDbContext> options) : base(options)
        {

        }
    }

Я добавил вышеупомянутый DbContext в startup.cs, как показано ниже:

services.AddDbContext<AccountDbContext>(o => o.UseSqlServer(Configuration.GetConnectionString("TESTDB")));

И наконец:

dbContext.Database.EnsureCreated();

Но поскольку TESTDB уже связан с существующим контекстом БД, он уже создан.Поэтому я думаю, что вызов функции - EnsureCreated () ничего не сделает и просто вернется.

Мои вопросы:

  1. Есть ли способ избежать создания дублирующего контекста для IdentityContext и каким-либо образом добавить его в существующий контекст БД?

  2. Если я расскажу об отдельном DbContext, как описано выше (но с использованием той же существующей БД), как обеспечить автоматическое создание таблиц удостоверений / ролей?

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

ОК, нашел решение.Я могу напрямую наследовать IdentityDbContext вместо DbContext (поскольку IdentityDbContext в любом случае расширяет DbContext).Миграции можно добавлять как обычно.

0 голосов
/ 30 марта 2019

Вы можете избежать создания двух контекстов, расширив AccountDbContext в вашем DbContext по умолчанию.

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