Запускать миграции в автономных приложениях

Я создал автономное приложение с 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 и вызывает метод). Это сработало для меня.

Другие вопросы по тегам