Entity Framework: 如何建立新的数据库连接和运行 所有迁移?

Entity Framework: How to set up new database connection and run all migrations?

我使用 Entity Framework 代码优先开发了一个带有本地 SQL 服务器数据库的 WPF 应用程序。

app.config 中用新连接字符串替换旧连接字符串后,如何运行 将所有迁移到新的远程数据库?

我需要更改 app.config 中的 Entity Framework 标签吗?

<entityFramework>
    <providers>
        <provider invariantName="System.Data.SqlClient" 
                  type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>

为了更清楚:我的问题是现在如果我 运行 Update-Database,我希望它 运行 在新定义的数据库中找不到的所有迁移服务器,它应该全部存在,因为 none 还存在于该新服务器上。相反,我得到的是:

PM> Update-Database
No pending explicit migrations.

所以即使我更换了连接字符串,它仍然会查看旧数据库。

我自己发现了问题。我最初声明 DbContext class 和构造函数的方式如下:

public class MyContext : DbContext
{
    public MyContext : base() 
    { }
}

显然,EntityFramework 会自动从 app.config 中找到连接字符串。但是,当我更改该连接字符串时,即使我没有更改其名称,EF 也不会自行应用该更改。所以我将构造函数更改为

    public MyContext : base("mycn") // unchanged name of the connection string
    { }

直到那时它才应用更改。对我来说有点奇怪,但是嗯...