我有一个Entity Framework 6应用程序。我已经将数据库从SQL Server移植到PostgreSQL。现在,当我运行应用程序时,出现此错误:
自此以来,支持“ ApplicationDbContext”上下文的模型已更改 数据库已创建。考虑使用代码优先迁移来 更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。
唯一的事情是数据库架构不应该更改。如果有,我的端口有问题,需要修复。我不想运行迁移以将数据库升级到新版本。我想找出导致此问题的更改是什么,以便我进行纠正。
是否有人知道Entity Framework如何确定数据库是否过时以及是什么引起该错误?
答案 0 :(得分:1)
Entity Framework将迁移历史记录和数据库模型的状态存储在名为MigrationHistory的表中。
This document has details on customizing that table.
但是,我建议不要对此进行修改。相反,作为解决方法,您可以添加一个新的迁移,删除Up()
方法内部的任何内容,然后更新数据库。这将更新历史记录以匹配您当前拥有的记录。
但是,当您添加迁移时,您可能需要先查看其生成的代码,以查看EF的看法已更改。实际上这可能是合法的迁移。
编辑: Schema changes are compared against hashes of your SSDL.