在以前版本的Entity Framework中,可以使用DbMigrator类以编程方式控制代码优先迁移(例如,检查并应用可用的迁移)。该类是否仍存在于某处或是否存在功能替代?我在早期的RC版本上发现了一个帖子,表明了替代品,但Core 1.0似乎也没有。我可以毫无问题地通过CLI控制我的迁移,但我认为需要一个针对自定义工具方案的代码内解决方案。
答案 0 :(得分:6)
可以在一些地方找到功能替换,主要是在Microsoft.EntityFrameworkCore.Migrations命名空间中的API中。
有些地方要看:
IHistoryRepository.GetAppliedMigrations()
IMigrator.Migrate(string
targetMigration)
(这和打电话一样
DbContext.Database.Migrate()
)IMigrationAssembly
查找当前迁移除了IMigrator.Migrate
之外,使用这些API通常意味着将服务从internal EF Core's service container.中拉出来。这可以通过在dbcontext上调用.GetService<TService>()
来完成。
示例:
var migrator = context.GetService<IMigrator>().Migrate();