数据库优先-尝试重新创建存在的我的实体
本文关键字:创建 存在 实体 我的 新创建 数据库 | 更新日期: 2023-09-27 18:16:36
我正在尝试将我的应用程序连接到现有的应用程序。所以我首先用实体框架数据库创建了实体。
它创建了我所有的实体和Context这很好。但是,当我试图运行它告诉我,我的迁移不是最新的,所以我试图添加迁移测试,看看缺少什么…
它正在创建所有的表,我要求它从DataBase First…
我不能重新创建那些表,我只想能够连接到那些表…
我绝对需要连接到那些表,我不能创建一个新的,我不能克隆数据库。
我怎样才能做到这一点?我没有找到任何关于这个主题从头到尾的资料。
如果有人帮忙就太好了!
问题:您不能重置数据库中现有表的迁移,因为EF想从头创建表。
怎么做:
删除Migrations_History表中已有的迁移。
删除migrations文件夹中已有的迁移。
运行add-migration Reset。这将在migration文件夹中创建一个迁移,其中包括创建表(但它不会运行它,因此不会出错)
您现在需要在MigrationHistory表中创建初始行,以便EF拥有当前状态的快照。如果您应用迁移,EF将执行此操作。但是,您不能应用刚才进行的迁移,因为这些表已经存在于数据库中。因此,进入Migration并注释掉"Up"方法中的所有代码。
现在运行update-database。它将应用迁移(而不实际更改数据库)并在MigrationHistory中创建快照行。
您现在已经重置了您的迁移,并且可以继续进行正常的迁移。