【发布时间】:2013-06-01 21:21:54
【问题描述】:
不知何故,我的 EF5 项目进入了无法继续的状态。
当我执行“更新数据库”时,我得到:
无法更新数据库以匹配当前模型,因为存在待处理的更改并且自动迁移已禁用。将挂起的模型更改写入基于代码的迁移或启用自动迁移。将 DbMigrationsConfiguration.AutomaticMigrationsEnabled 设置为 true 以启用自动迁移。 您可以使用 Add-Migration 命令将挂起的模型更改写入基于代码的迁移。
好的,很好,所以我尝试“添加迁移”,我得到:
无法生成显式迁移,因为以下显式迁移处于挂起状态:[ ]。在尝试生成新的显式迁移之前应用挂起的显式迁移。
20 转到 10 ??
此时我应该怎么做? (除了切换到 NHibernate 之外?)
【问题讨论】:
-
如果您有任何迁移,甚至是最初的迁移,请尝试注释掉代码并运行项目。有时这会超出此错误。
-
@Davy8 你能做“Update-Database -Force”吗?
-
@Kittoes 我试过了,但没有骰子。仍然有同样的错误。我还在添加迁移上尝试了
-Force,但没有运气。我让它工作的唯一方法是我发布的答案很混乱但有效。很想听听不那么丑陋的解决方案。 -
理论上代码优先是好的,在现实生活中,数据库优先是更好的方法。您可以完全控制数据库,如果出于任何原因,代码中的错误首先导致生产服务器中的数据丢失,您将对此负责。代码首先的问题是,您无法预览更改,也无法阻止有害更改。
-
不幸的是,这个问题没有得到解决,而且可能永远也不会得到解决。 EF是一个很棒的产品。这只会杀死它。
标签: entity-framework entity-framework-migrations