EF Code First无法看到所有迁移。

5
在我的项目中,我有十几个迁移。http://screencast.com/t/CA2kZk3WCFj 但是当我尝试从头创建数据库时,EF只会从标记的迁移开始到底部。 如果我输入以下命令: update-database -targetMigration InitialCreate 则会得到以下响应: 指定的目标迁移“InitialCreate”不存在。请确保目标迁移引用了现有的迁移ID。 我该如何解决这个问题并使EF看到所有迁移?

另一个解决方案可能是将所有迁移类文件从项目中排除,然后针对新的数据库添加一个新的迁移,从而搭建一个包含所有更改的新迁移。 - Tobias
很不幸,我们有多个运行环境,例如生产环境没有运行最新的迁移。此外,还有一些自定义脚本,收集和合并到新的迁移中会很麻烦。 - pajics
1
请检查您的迁移是否位于正确的命名空间中。 - michaelmsm89
我现在无法进行真正的测试了 :). 通过从头开始重新创建迁移来解决问题。 - pajics
2个回答

1
我曾经遇到过同样的问题。 在我的情况下,“被忽略”的迁移不在同一个命名空间中(由于项目重命名引起)。

这对我来说是同样的原因,但当我尝试为每个迁移重命名命名空间时并没有帮助。这个答案指引我去关注*.Designer.cs文件,我发现它们也需要调整命名空间。(在VS中,可以通过点击每个迁移旁边的箭头找到设计文件。)一旦我修复了那里的命名空间,迁移就会被正确地捕捉并应用。 - undefined

0

如果您在发布模式下使用Update-Database命令,则经常会发生这种情况。 在调试模式下运行似乎可以正常工作。


我不再遇到这个问题了,如果有其他人可以确认这一点,我将很乐意将其标记为答案... - pajics

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接