8

我有两个数据库,每个数据库都有自己的 dbcontext。我已经设置了两个迁移配置。我可以为第一个数据库添加迁移(Add-Migration DB1_InitialCreate -ConfigurationTypeName DB1Configuration)。当我尝试使用第二个数据库创建初始迁移时:Add-Migration DB2_InitialCreate -ConfigurationTypeName DB2Configuration,我收到以下错误:

无法生成显式迁移,因为以下显式迁移处于挂起状态:[201205082215265_DB1_InitialCreate]。在尝试生成新的显式迁移之前应用挂起的显式迁移。

所以我按照它说的做并更新数据库:

Update-Database -ConfigurationTypeName DB1Configuration

然后我尝试再次为第二个数据库添加迁移,但我不断收到同样的错误。

关于如何让迁移适用于两个数据库/上下文的任何想法?

4

3 回答 3

11

我已经能够回答我自己的问题了。我的两个配置类存在于同一个命名空间中。我一将它们分开,一切就正常了。

于 2012-05-09T17:50:48.423 回答
7

使用Entity Framework 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

来源

于 2014-12-19T23:07:46.830 回答
5

已经有一段时间了,但这可能是您问题的更好答案:)

Update-Database -ConfigurationTypeName "SlaveConfiguration"
                -StartupProjectName "FacturatieMVCv2.Data" -Verbose 
                -ConnectionString "connstring;" 
                -ConnectionProviderName "System.Data.SqlClient"
于 2012-05-18T13:06:07.007 回答