从EF 6 Code First迁移和多个配置生成完整的SQL脚本

时间:2013-10-29 18:03:07

标签: asp.net entity-framework ef-code-first ef-migrations

我正在尝试生成一个完整的SQL脚本来首次部署我的应用程序。我知道包管理器控制台中的这个命令应该创建一个完整的SQL脚本(参见this SO question

Update-Database -Script -SourceMigration:0 

我还读到$InitialDatabase应该用于源迁移而不是'0'。

但是,我的迁移文件夹中有两个配置。我正在使用以下语法:

Update-Database -Script -SourceMigration:0 -ConfigurationTypeName MyConfig

我正在为我的所有配置找回一个空脚本。

请注意,我已启用自动迁移,但未向其添加任何显式迁移。

1 个答案:

答案 0 :(得分:1)

在同一命名空间中具有两个迁移配置是不受支持的方案。我们最近关闭a bug similar to this为“按设计”。解决方法是将迁移配置放在不同的命名空间中。

此问题最可靠的解决方案是将您的配置放在不同的文件夹中并使用MigrationsDirectory变量,如下所示,然后为配置生成的任何显式迁移都应放在同一个文件夹中

    internal sealed class Configuration : DbMigrationsConfiguration<TestMultipleMigrationsScript.BlogContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = false;
        MigrationsDirectory = @"directory";
    }

}