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
{ }
直到那时它才应用更改。对我来说有点奇怪,但是嗯...
我使用 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
{ }
直到那时它才应用更改。对我来说有点奇怪,但是嗯...