【问题标题】:Is it possible to have conditional EF migration code?是否可以有条件的 EF 迁移代码?
【发布时间】:2016-06-10 12:55:37
【问题描述】:
我有两个环境 - 开发和生产。
我的应用程序中的存储过程对于每个环境都有些不同,在内部它们使用不同的链接服务器和其他特定于服务器的子查询,但过程具有相同的输入参数和输出结果列。
我将所有过程都放入迁移中,但在部署时,我发现我需要某种条件迁移代码来部署特定于生产的存储过程。
有没有办法根据配置设置或项目目标(如调试、发布等)运行不同的迁移代码?
当您必须拥有不同的特定于环境的迁移代码时,有人遇到过类似的事情吗?
请指教
【问题讨论】:
标签:
entity-framework
ef-code-first
entity-framework-6
entity-framework-migrations
【解决方案1】:
您可以像这样在迁移中使用 #if 指令:
#if Release
Sql("Update...");
#elif Debug
Sql("Delete...");
#endif
当您构建解决方案时,您只需传递您正在构建的配置(调试、测试、发布等)。
【解决方案2】:
我参加这个聚会有点晚了,但我在迁移到 EF.Core 时遇到了这个问题,并且只想更新开发中的一些内容。
环境变量为此工作得很好
例如
if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development")
...