0

以下是我多次经历的事件顺序:

  • 手动向数据库添加列
  • 向 DbContext 添加与该列对应的属性
  • 生成迁移(因此可以签入并且其他开发人员可以更新他们的数据库)

现在我处于无法使用上下文的状态,因为它给出了需要更新的错误。

但是,由于库已经存在(重复列),更新会导致错误。

那么我只是从根本上“做错了”还是包管理器中有一些命令说“我手动更新了我的数据库并且它现在是最新的”?

4

2 回答 2

2

发生的事情是 EF 还不知道您的迁移已被应用。

我所做的是在包管理器控制台中输入:

update-database -v -f -script

生成迁移脚本 - 然后我复制生成的 sql 中的最后一行,将数据添加到 __MigrationHistory 表中,然后手动执行。它看起来像这样:

在此处输入图像描述

这应该将您的代码与数据库同步。

于 2012-10-10T00:55:50.053 回答
0

为防止这种情况一次又一次地出现,您不应在数据库中手动添加该列,而应使用 update-database 对其进行更新。

正确的步骤应该是:

  • 向 DbContext 添加与该列对应的属性
  • 生成迁移
  • 运行更新数据库
于 2012-10-11T00:37:42.850 回答