切换分支以及如何首先使用EF代码重置数据库

时间:2016-08-24 08:57:13

标签: entity-framework ef-migrations

我的visual studio数据项目中有一个/*dropdown button the container div needed to position the dropdown content*/ .ddmenu { position: relative; display: inline-block; } /* Dropdown Content (Hidden by Default) */ .ddmenu-content { display: none; position: absolute; left: -132px; top: 26px; background-color: #212125; width: 825px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); } /* Links inside the dropdown */ .ddmenu-content a { color: white; padding: 12px 16px; text-decoration: none; display: block; } /* Change color of dropdown links on hover */ .ddmenu-content a:hover {background-color: #0174DF} /* Show the dropdown menu on hover */ .ddmenu:hover .ddmenu-content { display: block; } /* Change the background color of the dropdown button when the dropdown content is shown */ .ddmenu:hover .dropbtn { background-color: #0215cb; } 表和一个迁移文件夹。我需要切换到git中的另一个分支来调查缺陷,所以我需要重置数据库,然后切换回来继续我的工作。

这可能吗?我很担心,如果我尝试重新设置数据库以调查缺陷(即从__MigrationHistory表中删除我的迁移并删除迁移文件)我会在我工作时失去工作需要切换回我的分支吗?

解决这个问题的解决方案是什么?

删除迁移历史表中的条目后更新

尝试运行数据库更新时,我得到以下结果?我是否还需要删除相应的迁移文件?

__MigrationHistory

第二次更新

备份数据库并截断migrationhistory表后,我收到以下错误

No pending explicit migrations.
Running Seed method.

1 个答案:

答案 0 :(得分:1)

要将数据库还原到以前的版本,请在程序包管理器中使用此命令:

df.interpolate()

实体框架在您的数据库上运行Update-Database -TargetMigration "NameOfPreviousMigration"迁移,并使Down与您保持同步。不需要手动删除记录。

您还需要还原代码,因为如果模型和数据库不匹配,Entity Framework将抛出错误或尝试更新数据库(取决于您是否启用了自动迁移)。

完成后,运行_MigrationHistory而不使用Update-Database命令开关再次运行-TargetMigration迁移

参考:

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/