#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"));
}
}