如何将实体框架迁移用于新数据库和现有数据库?

时间:2013-12-16 19:08:50

标签: entity-framework

假设我有一个现有的数据库,我使用EF迁移来获得其初始状态。

Enable-Migrations –EnableAutomaticMigrations
add-migration Initial

如果我继续运行update-database,我会收到一个错误,我的对象已经存在。我告诉的解决方案是删除Up()和Down()方法中的代码。这很好。现在我可以修改我的模型并添加新的迁移,然后相应地更新它们。

但是当我想创建一个新数据库时该怎么办?我继续使用Up / Down方法恢复代码,这对于创建新数据库很有用,但是如果我尝试将它应用到现有数据库,我就会回到已经存在的对象。我猜我需要能够在现有数据库上初始化历史表。

1 个答案:

答案 0 :(得分:0)

我找到了一种可能会解决问题的解决方法。

确保删除现有数据库上的_MigrationHistory表。在PMC中运行以下内容

Enable-Migrations –EnableAutomaticMigrations -Force
add-migration Initial
Update-Database -Script

最后一个命令将生成一个新的SQL脚本并在IDE中打开。删除Initial Up()Down()方法中的代码。您可以创建新数据库,然后在该数据库上执行此脚本并继续使用迁移。

希望我能找到更优雅的方式来做到这一点。

相关问题