【发布时间】:2015-10-09 09:47:09
【问题描述】:
我面临的问题如下:
我一直很高兴首先使用 Entity Framework 6 和我的 SQLServer 2014 DB 进行代码开发,更新数据库,提取脚本,到目前为止一切正常。问题是它突然失去了对我数据库的跟踪,每当我尝试添加新的迁移时,它都会说我必须更新数据库,因为它仍然有待应用的迁移。
如果我查看我正在使用的数据库,它会显示所有内容都在那里,甚至 __MigrationHistory 表以及我完成的每个迁移都已注册。即使我接受代码优先建议并尝试更新数据库。这里没有什么意外......它尝试创建的第一个表会引发错误,因为它已经存在。
您能否就此提供一些指导?
提前致谢,
P.
【问题讨论】:
-
你试过
add-migration命令的force参数吗?还要检查其他参数,在包管理器控制台中输入“get-help add-migration -detailed”或“get-help Add-Migration -examples”。 -
是的,我什么都试过了。大约一个小时前我想通了。看看我自己的回答 :) btw:非常感谢您的回复!
-
好的。您的回答很有趣,您所说的“更新上下文键”是什么意思?
-
所以在 __MigrationHistory 表上,我有以下字段:MigrationId、ContextKey、Model 和 ProductVersion。结果是 ContextKey 字段包含迁移配置的命名空间,因此如果您在代码中更改它,Code First 将无法识别您数据库上的任何内容。
标签: ef-code-first entity-framework-6 code-first