【问题标题】:EF 6 Code First Migration after deleting data from __MigrationHistory table从 __MigrationHistory 表中删除数据后的 EF 6 Code First 迁移
【发布时间】:2018-09-05 06:55:59
【问题描述】:

我不小心从 __MigrationHistory 表中删除了数据,我尝试将新表和列更改迁移到 db。此时EF6显示错误

"There is already an object named 'xxxx' in the database.".

我用这个命令试过了,对表列的变化没有影响。

Add-Migration MyMigration1 -IgnoreChanges
Update-database -Force

有很多关于重新创建数据库或其他的建议。但是这些方式可能会影响数据丢失到我的数据库中,其中包含大量测试数据,我无法丢失任何数据。如何在不丢失任何数据的情况下解决此错误。如果有人请...

更新

终于找到了解决问题的方法。我不确定这是解决此类问题的首选方法,但它对我有用。

我清理了 __MigrationHistory 表中的数据,尝试迁移新数据库,并将新数据库的 __MigrationHistory 中的数据复制到旧数据库,然后将 AutomaticMigration 设置为 true 并运行 update-database 命令,问题就解决了。

【问题讨论】:

    标签: asp.net-mvc entity-framework entity-framework-6


    【解决方案1】:

    我不确定它是否是解决这个问题的好方法,但它对我有用。

    我刚刚使用正确版本和已应用迁移的名称插入到该表中,我在 EF Core 中完成了它,它确实有效,但请等待有人确认我在写什么。

    我看到的问题是您需要再填写两个字段(在 EF Core 中只有两列),但我认为您可以使用例如 SQL Profiler 接收它们

    【讨论】:

    • 谢谢@Wolkowsky,你的方式可能对我有帮助
    • 你好@Wolknowsky,我更新了我的问题。我的问题以其他方式解决了。你的方式对我有帮助,谢谢 Wolknowsky。
    猜你喜欢
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多