我有两个数据库,每个数据库都有自己的dbcontext。我设置了两个迁移配置。我可以为第一个db ust fine(Add-Migration DB1_InitialCreate -ConfigurationTypeName DB1Configuration
)添加一个迁移。当我尝试使用:Add-Migration DB2_InitialCreate -ConfigurationTypeName DB2Configuration
使用第二个数据库创建初始迁移时,出现以下错误:
由于以下显式迁移未决,因此无法生成显式迁移:[201205082215265_DB1_InitialCreate]。在尝试生成新的显式迁移之前应用挂起的显式迁移。
所以我按照说法做了并用以下内容更新数据库:
Update-Database -ConfigurationTypeName DB1Configuration
然后我尝试再次为第二个数据库添加迁移,但我一直收到同样的错误。
有关如何使迁移适用于两个数据库/上下文的任何想法?
答案 0 :(得分:11)
我已经能够回答我自己的问题了。我的两个配置类存在于同一个命名空间中。一旦我把他们分开,一切都会奏效。
答案 1 :(得分:7)
使用实体框架6 ,这很容易。
对于一个数据库的多个DbContexts和每个自己的数据库的多个DbContexts都是相同的过程:
Enable-Migrations -ContextTypeName <DbContext-Name-with-Namespaces> -MigrationsDirectory:<Migrations-Directory-Name>
Add-Migration -configuration <DbContext-Migrations-Configuration-Class-with-Namespaces> <Migrations-Name>
Update-Database -configuration <DbContext-Migrations-Configuration-Class-with-Namespaces> -Verbose
答案 2 :(得分:5)
已经有一段时间了,但这可以更好地解决您的问题:)
Update-Database -ConfigurationTypeName "SlaveConfiguration"
-StartupProjectName "FacturatieMVCv2.Data" -Verbose
-ConnectionString "connstring;"
-ConnectionProviderName "System.Data.SqlClient"