在EF Code First迁移的Up方法中获取Update-Database指定的连接字符串
在DbMigration.Up()中获取Update-Database命令传入的连接字符串
可以通过DbMigration的Context属性间接获取当前使用的连接字符串,这个字符串就是执行Update-Database时通过-ConnectionString参数传入的内容,具体实现如下:
修改你的迁移类代码:
public partial class MyDbMigration : DbMigration { public override void Up() { // ... 其他迁移逻辑 var migrationConnectionString = ((System.Data.Entity.DbContext)this.Context).Database.Connection.ConnectionString; using (SqlConnection con = new SqlConnection(migrationConnectionString)) { con.Open(); SqlCommand cmd = new SqlCommand("select * from ...", con); // 执行自定义数据迁移操作 } // ... 其他迁移逻辑 } }
关键说明
this.Context指向当前迁移使用的DbContext实例,其Database.Connection.ConnectionString会优先使用命令行传入的连接字符串,而非配置文件中的默认值- 该逻辑同样可以直接复用在
Down()方法中
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

