繁体   English   中英

实体框架:如何建立新的数据库连接并运行所有迁移?

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

我使用实体框架代码优先开发了一个 WPF 应用程序和一个本地 SQL 服务器数据库。

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 ,我希望它运行它在新定义的数据库服务器上找不到的所有迁移,这应该是新服务器上尚不存在的所有迁移。 相反,我得到的是:

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
    { }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM