【问题标题】:Unable to generate an explicit migration - Entity Framework 6.1.3 with multiple Contexts / Configurations无法生成显式迁移 - 具有多个上下文/配置的实体框架 6.1.3
【发布时间】:2016-09-15 09:53:34
【问题描述】:

我有一个作为内部工具集的项目。因此,我需要多个上下文。我有一个上下文设置很好,然后我开始尝试添加我的第二个上下文。我从另一个 SO question 中了解到,您需要在启用后重命名配置文件,然后在执行 Add-Migration 和 Update-Database 命令时引用新的配置文件名。我这样做并最终得到“无法生成显式迁移...”,它引用了 201605181623556_ServiceRequest,如下所示。

PM> Enable-Migrations -ContextTypeName InsideAdminContext

此时我重命名了配置文件InsideAdminConfiguration

PM> Enable-Migrations -ContextTypeName PartFinderContext

重命名配置文件PartFinderconfiguration

PM> Add-Migration "ServiceRequest" -ConfigurationTypeName InsideAdminConfiguration
PM> update-database -ConfigurationTypeName InsideAdminConfiguration
Applying explicit migrations: [201605181623556_ServiceRequest].
Applying explicit migration: 201605181623556_ServiceRequest.
Running Seed method.
PM> Add-Migration "InitialMigrationForPartFinder" -ConfigurationTypeName PartFinderConfiguration
Unable to generate an explicit migration because the following explicit migrations are pending: [201605181623556_ServiceRequest]. Apply the pending explicit migrations before attempting to generate a new explicit migration.

到目前为止,我已经删除了所有的迁移文件夹,删除了表和_MigrationHistory表并使用上面的命令重新开始,但问题仍然存在。

-----更新-----
我颠倒了上面的顺序并首先创建了 PartFinder 表,并在尝试在 ServiceRequest 上添加迁移时遇到了同样的错误。

【问题讨论】:

    标签: asp.net asp.net-mvc entity-framework entity-framework-6


    【解决方案1】:

    我在这里找到了解决方案:How do I enable EF migrations for multiple contexts to separate databases?

    我缺少的部分是“bart s”的答案。配置文件需要有自己的命名空间,可以通过 Enable-Migrations -MigrationsDirectory 参数创建。在我的情况下,它转换为(我在这里有一些额外的参数,由于尝试了其他事情,可能没有必要):

    Enable-Migrations -MigrationsDirectory "Migrations\InsideAdmin" -ContextTypeName InsideIIMAK.Domain.Concrete.InsideAdminContext -StartUpProjectName InsideAdmin
    
    Enable-Migrations -MigrationsDirectory "Migrations\PartFinder" -ContextTypeName InsideIIMAK.Domain.Concrete.PartFinderContext -StartUpProjectName InsideAdmin
    
    Add-Migration "InitialMigrationForPartFinder" -ConfigurationTypeName InsideIIMAK.Domain.Migrations.PartFinder.PartFinderConfiguration -StartUpProjectName InsideAdmin -ConnectionStringName PartFinderContext
    
    update-database -ConfigurationTypeName InsideIIMAK.Domain.Migrations.PartFinder.PartFinderConfiguration -StartUpProjectName InsideAdmin -ConnectionStringName PartFinderContext
    
    Add-Migration "ServiceRequest" -ConfigurationTypeName InsideIIMAK.Domain.Migrations.InsideAdmin.InsideAdminConfiguration -StartUpProjectName InsideAdmin -ConnectionStringName InsideAdminContext
    
    update-database -ConfigurationTypeName InsideIIMAK.Domain.Migrations.InsideAdmin.InsideAdminConfiguration -StartUpProjectName InsideAdmin -ConnectionStringName InsideAdminContext
    

    【讨论】:

      猜你喜欢
      • 2012-04-06
      • 1970-01-01
      • 2013-03-06
      • 2015-01-01
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      相关资源
      最近更新 更多