У нас есть разные пользователи БД (с разными разрешениями), которых мы используем для операций чтения/записи (readwrite
) и для создания/изменения таблиц (modifytable
).
Я хочу использовать строку подключения с пользователем readwrite
для класса DbContext
и смог сделать это в файле Program.cs
следующим образом:
builder.Services.AddDbContext<ReadWriteContext>(
options => options.UseSqlServer(rwConnString));
Как мне сделать эквивалент для части миграции (т. е. предоставить строку подключения к пользователю modifytable
)?
Все примеры, которые я видел, просто говорят о запуске следующей команды в консоли диспетчера пакетов NuGet:
Add-Migration InitialCreate
а потом
Update-Database
Как (и откуда) это Update-Database
получает строку подключения? Как предоставить пользовательскую строку подключения?
Мы создаем строку подключения, используя некоторую логику, которая принимает некоторые значения из Azure Key Vault, поэтому чтение ее из файла конфигурации не является вариантом.
Я новичок в EF.
Нашел решение своей проблемы: команда Update-Database
принимает строку подключения:
Update-Database -connection <connection_string>
Вы можете указать строку подключения в командной строке с помощью параметра
--connection
. В .NET Core миграция выполняется в любой ОС с использованием миграций dotnet ef, а не команд Powershell только для VS.