我遇到了EF6代码首次迁移的问题。
当我在一个较低的子分支中,我正在更改新的东西时,我会在该分支中进行迁移,我的数据库会进行这些更改。
当我切换到我的主分支(我不想合并)并尝试在本地运行它时,我的迁移存在于我的数据库中,但不存在于该代码分支中。
我正在尝试修复bug以从主分支转到生产,并且不想运行任何新的迁移,但它告诉我:
支持'DummyDBContext'上下文的模型自此以来已发生变化 数据库已创建。
我怎样才能解决这个问题?
答案 0 :(得分:4)
你在这里遇到了两个问题。
InvalidOperationException
被抛出的原因。最简单的方法是回滚' subBranch'切换回master之前的迁移(通过调用Update-Database -TargetMigration [NameOfPreviousMigration]
)。缺点是,无论何时切换回subBranch,您都必须重新运行迁移。
否则,解决这个问题的方法将包括:
DbInitializer
设置为DropCreate
(将删除数据库中的所有数据,因此请注意这个数据)或手动设置,回滚对数据库模式所做的任何更改撤消迁移对架构所做的任何更改。
如果你采用这种方式,当你以任何一种方式切换回subBranch时,你将需要从头开始重新运行迁移。 祝你好运;)