我已经基于这个解决方案使用EF 6 Code First MVC 5原型设计了一个项目:EF Code First to create multiple databases dynamically。现在我想知道迁移与多个数据库是如何协作的?是否意味着我需要为每个数据库运行Add-Migration MigrationsName命令?
您刚刚确认所有数据库需要同时升级,然后只需使用一个数据库添加迁移,然后将其更新到所有数据库即可。
您可以基于配置中的连接字符串名称指定连接字符串名称参数。
<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>());
-ConnectionString "Data Source=.; Initial Catalog=Company1000; Integrated Security=true" -ConnectionProviderName "System.Data.SqlClient"
。 - Yuliam Chandra