数据库优先 - 尝试重新创建我存在的实体

Database First - trying to recreate my entities that exist

我正在尝试将我的应用程序连接到现有应用程序。 所以我首先使用 Entity Framework 数据库创建了实体。

它创建了我所有的实体和我的上下文,这很好。 但是当我尝试 运行 它告诉我我的迁移不是最新的所以我尝试添加迁移测试以查看缺少的内容...

它正在创建所有 table 我首先从数据库询问它...

我无法重新创建那些 table 我只想能够连接到那些 table...

我绝对需要连接到那些 table,我无法创建新的,也无法克隆数据库。

我怎样才能做到这一点...我没有找到关于该主题的从流程开始到结束的任何资源。

一些帮助会很棒!

问题:您无法使用数据库中现有的 table 重置迁移,因为 EF 想要从头开始创建 table。

要做什么:

从 Migrations_History table 中删除现有迁移。

从迁移文件夹中删除现有迁移。

运行 添加迁移重置。这将在您的迁移文件夹中创建一个迁移,其中包括创建 tables(但它不会 运行,因此不会出错。)

您现在需要在 MigrationHistory 中创建初始行 table,以便 EF 拥有当前状态的快照。如果您应用迁移,EF 将执行此操作。但是,您不能应用刚刚进行的迁移,因为 tables 已经存在于您的数据库中。所以进入 Migration 并注释掉 "Up" 方法中的所有代码。

现在运行更新数据库。它将应用迁移(而不实际更改数据库)并在 MigrationHistory 中创建一个快照行。

您现在已重置迁移,可以继续正常迁移。