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

ani*_*ina 5 c# entity-framework-core asp.net-core ef-core-2.0

我需要在代码中一一应用Entity Framework Core 迁移,我可以调用await dbContext.Database.MigrateAsync();它,但它将所有待处理的迁移应用到一个块中。

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

ani*_*ina 8

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

await dbContext.Database.GetInfrastructure().GetService<IMigrator>().MigrateAsync(targetMigrationName);
Run Code Online (Sandbox Code Playgroud)

这个扩展可以查询待处理的迁移名称:

var pending = dbContext.Database.GetPendingMigrations();
Run Code Online (Sandbox Code Playgroud)

  • 这对于将迁移逻辑排除在主应用程序之外的安装程序或更新程序工具非常有用。 (2认同)