在代码中逐一应用 EF 核心迁移

Apply EF core migrations one by one in code

我需要在代码中一个一个地应用 Entity Framework 核心迁移,我可以调用 await dbContext.Database.MigrateAsync(); 但它会同时应用所有待处理的迁移阻止。

是否有扩展程序或其他方法来逐个应用迁移或选择要应用的迁移名称?

有一个 IMigrator 服务带有 Migrate(string targetMigration) 接收迁移名称的方法,此方法由 Migrate() 扩展使用。 从 DbContext 实例中,它可以用作:

await dbContext.Database.GetInfrastructure().GetService<IMigrator>().MigrateAsync(targetMigrationName);

可以通过此扩展程序查询挂起的迁移名称:

var pending = dbContext.Database.GetPendingMigrations();