как иметь двух разных пользователей для обработки миграции ядра EF и CRUD

#docker #.net-core #entity-framework-core #ef-core-3.1

Вопрос:

Я ищу решение для работы с двумя разными пользователями SQL, суперпользователем для миграции ядра EF и пользователем с низкими привилегиями для работы с приложениями. Однако решение состоит в том, чтобы закрепить приложение, и пользователи SQL должны иметь возможность передавать его в качестве переменных env.

Ответ №1:

Вы можете попытаться переопределить метод OnConfiguring в DbContext, и там вы можете установить другую строку подключения (другого пользователя) на основе некоторого условия.

.Метод расширения AddDbContext зарегистрируйте DbContext в качестве службы с областью действия, поэтому вы должны иметь возможность обрабатывать назначение каждого экземпляра DbContext.

Я постараюсь дать вам представление об этом:

 public class ApplicationDbContext : IdentityDbContext
{
    private readonly IConfiguration configuration;
    public ApplicationDbContext(IConfiguration configuration)
    {
        this.configuration = configuration;
    }

    protected override void OnConfiguring(DbContextOptionsBuilder builder)
    {
        bool someCondition = true;
        builder.UseSqlServer(configuration.GetConnectionString(someCondition ? "SuperUserConnectionString" : "CrudConnectionString"));
    }
}