从EF 6代码优先迁移和多种配置生成完整的SQL脚本

Leo*_*era 5 asp.net entity-framework ef-code-first ef-migrations

我正在尝试生成完整的SQL脚本以首次部署我的应用程序。我知道来自软件包管理器控制台的此命令应该创建完整的SQL脚本(请参阅此SO问题

Update-Database -Script -SourceMigration:0 
Run Code Online (Sandbox Code Playgroud)

我还读过,$InitialDatabase对于源代码迁移,它应该可以代替“ 0”工作。

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

Update-Database -Script -SourceMigration:0 -ConfigurationTypeName MyConfig
Run Code Online (Sandbox Code Playgroud)

我正在为所有配置恢复一个空脚本。

需要说明的是,我启用了自动迁移,并且没有向其添加任何显式迁移。

luk*_*kew 2

不支持在同一命名空间中拥有两个迁移配置的情况。我们最近“按设计”关闭了一个与此类似的错误。解决方法是将迁移配置放在单独的命名空间中。

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

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

}
Run Code Online (Sandbox Code Playgroud)