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

时间:2015-10-08 14:01:29

标签: c# entity-framework ef-database-first

我试图将我的应用程序连接到现有的应用程序。 所以我首先使用实体​​框架数据库创建了实体。

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

它创建了我从DataBase First ...中提出的所有表格。

我无法重新创建那些我希望能够连接到这些表的表...

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

我怎样才能实现这一目标......我没有找到关于这一主题的任何资源,从过程的开始到结束。

一些帮助会很棒!

1 个答案:

答案 0 :(得分:0)

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

怎么做:

从Migrations_History表中删除现有迁移。

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

运行add-migration Reset。这将在您的Migration文件夹中创建一个包含创建表的迁移(但它不会运行它,因此不会出错。)

您现在需要在MigrationHistory表中创建初始行,以便EF具有当前状态的快照。如果您应用迁移,EF将执行此操作。但是,由于数据库中已存在表,因此无法应用刚刚进行的迁移。所以进入迁移并注释掉“Up”方法中的所有代码。

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

您现在已经重置了迁移,可能会继续正常迁移。