Запускать миграции в автономных приложениях
Я создал автономное приложение с dotnet
:
dotnet publish -c release
Пакет развертывания содержит саму среду выполнения ядра.net, поэтому, если кто-то хочет использовать приложение, ему не нужно отдельно устанавливать среду выполнения ядра.net.
Но мой вопрос... можно ли прикрепить dotnet.exe
для развертывания пакета?
Fe - мое веб-приложение ожидает перенесенную базу данных:
dotnet ef database update
Эта команда не может быть запущена из автономного приложения (нет прямого доступа к dotnet.exe
).
Каковы сценарии в этом случае? Как мне справиться с этим?
1 ответ
Решение состоит в том, чтобы добавить его в свой Startup.cs вот так
public void Configure(
IApplicationBuilder app,
// ... various other parameters that you may have and below add the context that you want to run Migrations
YourDbContext db1)
{
{
// run the migrations before other code
db1.Database.Migrate();
// ...
}
PS. это немного странно, но вы добавляете его в сигнатуру метода Configure в качестве дополнительного параметра, и он работает (я полагаю, он автоматически создает экземпляр объекта dbContext и вызывает метод). Это сработало для меня.