Entity framework 使用多数据库/DbContext进行EF代码首次迁移
我有两个数据库,每个数据库都有自己的dbcontext。我已经设置了两种迁移配置。我可以为第一个数据库添加迁移(Entity framework 使用多数据库/DbContext进行EF代码首次迁移,entity-framework,code-first,entity-framework-migrations,multiple-databases,Entity Framework,Code First,Entity Framework Migrations,Multiple Databases,我有两个数据库,每个数据库都有自己的dbcontext。我已经设置了两种迁移配置。我可以为第一个数据库添加迁移(addmigrationdb1\u InitialCreate-ConfigurationTypeName DB1Configuration)。当我尝试使用:addmigrationdb2\u InitialCreate-ConfigurationTypeName DB2Configuration创建第二个数据库的初始迁移时,我得到以下错误: 无法生成显式迁移,因为以下显式迁移处于挂起
addmigrationdb1\u InitialCreate-ConfigurationTypeName DB1Configuration
)。当我尝试使用:addmigrationdb2\u InitialCreate-ConfigurationTypeName DB2Configuration
创建第二个数据库的初始迁移时,我得到以下错误:
无法生成显式迁移,因为以下显式迁移处于挂起状态:[20120508215265\u DB1\u InitialCreate]。在尝试生成新的显式迁移之前,应用挂起的显式迁移
所以我照上面说的做,用以下内容更新数据库:
Update-Database -ConfigurationTypeName DB1Configuration
然后,我尝试为第二个db再次添加迁移,但我一直收到相同的错误
关于如何让迁移在两个数据库/上下文中工作,有什么想法吗?我已经能够回答我自己的问题了。我的两个配置类存在于同一命名空间中。我一把他们分开,一切都好了。已经有一段时间了,但这可能是解决你问题的更好办法:)
使用实体框架6很容易 对于一个数据库的多个DbContext和每个数据库的多个DbContext,都是相同的过程:
启用迁移-上下文类型名称-迁移目录:
添加迁移-配置
updatedatabase-configuration-Verbose
我在同一名称空间中有两个DBContext,但不存在此问题。使用EF5.0RTM。我还必须按名称空间(EF6.x)将它们分开;仅更新数据库配置类型名称配置名称是不够的
Update-Database -ConfigurationTypeName "SlaveConfiguration"
-StartupProjectName "FacturatieMVCv2.Data" -Verbose
-ConnectionString "connstring;"
-ConnectionProviderName "System.Data.SqlClient"