You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:47:44