自创建数据库以来,支持“ ApplicationDbContext”上下文的模型已更改

时间:2018-08-17 10:33:37

标签: c# entity-framework entity-framework-6

我有一个Entity Framework 6应用程序。我已经将数据库从SQL Server移植到PostgreSQL。现在,当我运行应用程序时,出现此错误:

  

自此以来,支持“ ApplicationDbContext”上下文的模型已更改   数据库已创建。考虑使用代码优先迁移来   更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269)。

唯一的事情是数据库架构不应该更改。如果有,我的端口有问题,需要修复。我不想运行迁移以将数据库升级到新版本。我想找出导致此问题的更改是什么,以便我进行纠正。

是否有人知道Entity Framework如何确定数据库是否过时以及是什么引起该错误?

1 个答案:

答案 0 :(得分:1)

Entity Framework将迁移历史记录和数据库模型的状态存储在名为MigrationHistory的表中。

This document has details on customizing that table.

但是,我建议不要对此进行修改。相反,作为解决方法,您可以添加一个新的迁移,删除Up()方法内部的任何内容,然后更新数据库。这将更新历史记录以匹配您当前拥有的记录。

但是,当您添加迁移时,您可能需要先查看其生成的代码,以查看EF的看法已更改。实际上这可能是合法的迁移。

编辑: Schema changes are compared against hashes of your SSDL.