在显式迁移挂起时添加迁移

Fer*_*osa 5 .net c# entity-framework ef-code-first ef-migrations

因此,当我没有DB同步时(直到最新的迁移,实际上根本没有DB)并且已经对我的模型进行了实质性更改,我在尝试生成迁移时遇到了一个基本问题.

这是具体细节:

  1. 有一系列显式迁移.
  2. 没有数据库.简而言之,有许多待定的更改.
  3. 对模型/上下文进行了更改.
  4. 在尝试添加迁移时,它会抱怨说明确的迁移是未决的.
  5. 如果我尝试通过Update-Database或migrate.exe执行迁移(并使我的数据库同步),它将失败(成功应用显式迁移后),并且未启用自动迁移.
  6. 我也不想启用自动迁移(以防止提交任何架构更改并在代码中进行解释.)

我意识到在#5失败后我现在可以运行#4.然后重新尝试#5和voilá.

我的问题是,如果这是解决这种愚蠢局面的预期方法.

Ily*_*kin 10

我会使用以下方法.

首先,您需要应用迁移并指定最后一个.

PM> Update-Database -TargetMigration AnyMigrationName

# It updates database to a migration named "AnyMigrationName"
# This will apply migrations if the target hasn't been applied or roll back migrations
# if it has
Run Code Online (Sandbox Code Playgroud)

更新本地数据库后,只需添加新迁移即可.

PM> Add-Migration NewMigrationName

# it scaffolds a new migration named "NewMigrationName" 
Run Code Online (Sandbox Code Playgroud)

寻找一个很好的参考我发现这些关于EF迁移的博客文章可以帮助你很多.它们涵盖了许多问题,特别是EF迁移和合并冲突以及EF迁移命令参考.