多个数据库的EF Code First迁移

时间:2014-08-15 01:53:21

标签: c# asp.net-mvc entity-framework ef-code-first ef-migrations

我使用基于此解决方案的EF 6 Code First MVC 5制作了一个项目原型:

EF Code First to create multiple databases dynamically

现在我想知道迁移如何与多个数据库一起使用?

这是否意味着我需要为我拥有的每个数据库运行Add-Migration MigrationsName?

1 个答案:

答案 0 :(得分:2)

您刚刚确认所有数据库需要同时升级,然后您只需使用一个数据库添加迁移,然后将其更新到所有数据库。

您可以根据配置中的连接字符串名称指定连接字符串名称参数。

<connectionStrings>
    <add name="CompanyABC"
         connectionString="Data Source=.; Initial Catalog=CompanyABC; Integrated Security = true;" 
         providerName="System.Data.SqlClient" />
    <add name="CompanyDEF"
         connectionString="Data Source=.; Initial Catalog=CompanyDEF; Integrated Security = true;"
         providerName="System.Data.SqlClient" />
    <add name="CompanyXYZ"
         connectionString="Data Source=.; Initial Catalog=CompanyXYZ; Integrated Security = true;"
         providerName="System.Data.SqlClient" />
</connectionStrings>

<强>移植

PM> Enable-Migrations -ConnectionStringName CompanyABC
PM> Add-Migration UpgradeToVersionX -ConnectionStringName CompanyABC
PM> Update-Database -ConnectionStringName CompanyABC
PM> Update-Database -ConnectionStringName CompanyDEF
PM> Update-Database -ConnectionStringName CompanyXYZ

在运行时运行迁移

Database.SetInitializer<AppContext>(
   new MigrateDatabaseToLatestVersion<AppContext, Configuration>());