更新站点后获取EF上下文已更改错误

时间:2015-12-08 14:21:48

标签: entity-framework entity-framework-6

我遇到的问题是我收到错误“自创建数据库以来上下文已发生更改”,但是当我查看迁移历史记录表时,它是最新的迁移。这是一个测试站点,所以我使用运行此命令获得的sql脚本更新了数据库“Update-Database -Script -SourceMigration:$ InitialDatabase”我不能只删除整个数据库并重新创建它。有没有人遇到类似这样的问题?目前,我使用的是EF 6.1.3。

注意:我为此使用了代码优先,因此它不是我要添加的现有数据库。

3 个答案:

答案 0 :(得分:1)

问题是由于域名被更改,已为该站点创建了一个新目录。我知道域名已经改变,但没有意识到物理目录有变化。当我检查应用程序路径(s被删除)时,我错过了这么小的变化。所以问题是由pebkac引起的(键盘和椅子之间存在问题)。

答案 1 :(得分:0)

尝试在DbContext类的构造函数中将Initializer设置为null。

像这样:

Database.SetInitializer<YourDbContext>(null);

ScottGu博客解释了为什么会发生这种情况:

http://weblogs.asp.net/scottgu/using-ef-code-first-with-an-existing-database

答案 2 :(得分:0)

您是否尝试过使用此命令而不是执行脚本?

更新 - 数据库 - 强制

如果您已启用自动迁移,则应选择代码优先更改并进行部署。该力将允许删除数据的列等。