是否可以使用条件EF迁移代码?

时间:2016-06-10 12:55:37

标签: entity-framework ef-code-first entity-framework-6 ef-migrations

我有两个环境 - 开发和生产。 我的应用程序中的存储过程对于每个环境都有所不同,在内部它们使用不同的链接服务器和服务器特定的其他子查询,但是proc具有相同的输入参数和输出结果列。

我将所有过程都放入迁移中,但在部署时,我发现需要某种条件迁移代码来部署特定于生产的存储过程。

有没有办法根据配置设置或项目目标(如Debug,Release等)运行不同的迁移代码? 当你必须拥有不同的环境特定迁移代码时,是否有人面对某些事情?

请咨询

2 个答案:

答案 0 :(得分:1)

您可以在迁移中使用#if指令,如下所示:

#if Release
    Sql("Update...");
#elif Debug
    Sql("Delete...");
#endif

构建解决方案时,您只需要传递正在构建的配置(调试,测试,发布等)。

答案 1 :(得分:0)

我参加这个聚会很晚,但是在迁移到EF.Core时遇到了这个问题,只想更新开发中的某些内容。 环境变量对此非常有效 例如

if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development")
...