如何在EntityFramework 4.3中为现有数据库创建迁移?

时间:2012-02-14 02:25:46

标签: entity-framework-4 ef-migrations

所以我想开始使用EntityFramework 4.3迁移。我想知道我是否可以将现有数据库转换为支持迁移的数据库,并且让EF假设只有从那时起的更改才应被视为迁移。

3 个答案:

答案 0 :(得分:9)

这里有一个很好的演练:http://thedatafarm.com/data-access/using-ef-4-3-code-first-migrations-with-an-existing-database/

我建议的一个改变就是在部署迁移之前简单地注释Up和Down方法中的代码。之后,您可以取消注释代码,这样您就可以在以后需要时创建新数据库。

答案 1 :(得分:8)

所以看起来我正在寻找的是Codebased Migrations,当我设置AutomaticMigrationsEnabled = false时会激活它。我的模型是从现有数据库生成的。要激活迁移,我需要做的就是启用迁移(启用 - 迁移),使用添加迁移创建新的迁移文件,清空它(我的模型已经在数据库中,所以我不希望EF尝试和创建它们并部署它。为了部署,我将以下内容添加到我的Global.asax文件中:

protected void Application_Start()
{
        var config= new Configuration();
        var migrator = new DbMigrator(config);
        migrator.Update();
}

创建了一个新表__MigrationHistory,并在其中创建了一个新的迁移记录。这个新的迁移记录有我的模型的哈希,所以现在我的模型的任何更改都可以在以后的EF迁移中编写脚本。

为了测试,我创建了另一个迁移文件(Add-Migration),我向模型添加了一个新属性,运行了Add-Migrations,它编写了新字段的脚本,然后部署了我的应用程序。迁移按预期运行。

答案 2 :(得分:0)

添加迁移-IgnoreChanges

请参阅https://msdn.microsoft.com/en-us/data/dn579398.aspx