实体框架迁移的连接(Entity Framework migrator's connecti

2019-09-22 08:03发布

使用实体框架5.0,我试图我MVC网站的启动程序中手动迁移我的代码,第一个数据库。 要做到这一点,我第一次创建的DbContext实例,然后运行下面的代码:

var migrator = new MigrateDatabaseToLatestVersion<DataContext, Configuration>();
migrator.InitializeDatabase(this.dataContext);

我以为用的DataContext的连接将是一个迁移相关联的数据库。 看来,虽然这是情况并非如此。 相反,它总是试图在本地的SQLExpress实例迁移的数据库。

有一个超载的MigrateDatabaseToLatestVersion构造函数,一个数据库连接字符串的名字,但我的项目是使用Azure和不使用标准的ConnectionStrings配置部分。 理想情况下,我只是把它传递一个连接字符串,我已经可用。 这可能吗?

Answer 1:

该解决方案是完全绕过MigrateDatabaseToLatestVersion类。 它只是围绕DbMigration类的薄的包装,如所示的源代码 。

最后,我写了下面的代码:

var database = this.dataContext.Database;
var migrationConfiguration = new Configuration();
migrationConfiguration.TargetDatabase = new DbConnectionInfo(database.Connection.ConnectionString, "System.Data.SqlClient");
var migrator = new DbMigrator(migrationConfiguration);
migrator.Update();


文章来源: Entity Framework migrator's connection