重置实体框架5的上下文,使其认为它使用初始化的数据库-代码优先

本文关键字:初始化 数据库 代码 框架 实体 上下文 | 更新日期: 2023-09-27 18:26:42

链接到此问题:

无法使用EF 5拆分表-代码优先-使用现有数据库

但我认为这个问题的答案实际上不是代码的问题,而是我在开发过程中所做的事情。

场景是这样的:

  1. 有一个现有的数据库,并使用它开始创建我的数据上下文
  2. 开始使用它,但很快意识到命名约定很差,一些表需要重新设计
  3. 决定创建一个新的数据库,为现有的表提供更好的约定,并重新构建新的位
  4. 更新上下文以查看新数据库
  5. 尽管没有启用迁移,但我还是遇到了数据库不同步的错误(尽管直到今天早上它仍在提取数据)
  6. 我启用了迁移(另一个问题中的注释)并输出到脚本。您可以看到同步更改包括表名和Id属性等

我无法继续前进,当你像这样切换数据库时,上下文似乎不喜欢它(我已经说到了这一点,但这真的很脆弱)。我需要做的是以某种方式重置上下文,这样它实际上就不会认为对数据库进行了任何更改,并且认为它正在重新使用初始数据库。

我已经删除了migrations文件夹,但这没有任何作用。有什么办法可以让这一切发生吗?

重置实体框架5的上下文,使其认为它使用初始化的数据库-代码优先

尝试删除数据库中的__MigrationHistory表。这是一个系统。