EF Core предоставляет публично только метод расширения dbContext.Database.Migrate();
, используемый для переноса последней версии. Это упомянуто в разделе Применение миграций во время выполнения документации EF Core, которая также содержит следующий
Примечание
Этот метод основан на сервисе IMigrator
, который можно использовать для более сложных сценариев. Используйте DbContext.GetService<IMigrator>()
для доступа к нему.
, который дает вам решение, потому что интерфейс IMigrator
предоставляет метод Migrate
, принимающий необязательный параметр targetMigration
с той же семантикой, что и команды dotnet ef database update
или Update-Database
PM. Передача "0"
(которая является значением константы Migration.InitialDatabase
) будет выполнять соответствующую операцию.
Вам понадобятся следующие дополнительные using
s:
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
и такой код:
var migrator = dbContext.GetService<IMigrator>();
migrator.Migrate(Migration.InitialDatabase);