0

环境:

实体框架 6.1.0
.NET 4.5

嗨,我已经在我的项目上启用了迁移。但我希望能够更新具有相同上下文的不同数据库。可能吗?根据我的研究,人们要么在一个数据库上寻找多个上下文,要么在多个数据库上寻找多个上下文。我需要的是多个数据库的一个上下文。这是我的场景:

development_db
production_db

我希望能够将更改应用于我的development_db,然后,在测试完所有内容后,我想为production_db. 我已经有 2 个连接字符串(用于两个数据库),但我不知道让它工作,因为迁移文件将是整个迁移项目的一个。

可能吗?

谢谢。

4

1 回答 1

3

我的工作方式是在我的开发环境中配置上下文

网络配置

<add name="MyContext" connectionString="Data Source=.\SQLDev2008R2;Initial Catalog=My_DEV;Persist Security Info=True;Integrated Security=SSPI;Connection Timeout=240" providerName="System.Data.SqlClient" />

然后,我在发布生产版本时使用SlowCheetah转换该连接字符串

web.Release.config

<connectionStrings>
  <add name="MyContext"
    connectionString="Data Source=(local);Initial Catalog=My_PROD;Integrated Security=True"
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>

</connectionStrings>

当应用程序在生产环境中运行时,我允许自动应用迁移。Enable-Migrations -EnableAutomaticMigrations您可以使用(加上其他适当的参数)配置此选项。

这可能不适合某些环境。如果是这种情况,在您update-database在开发环境中运行之前,请先运行update-database -Script(使用适当的参数)。这将生成一个 SQL 脚本,当您准备好应用给定的更新时,您可以在生产数据库中运行该脚本,而不是依赖于自动迁移。

于 2014-07-02T00:01:04.970 回答