You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF6中如何根据工作环境为DataContext动态传递连接字符串

实现步骤

  1. 首先确认项目已引用System.Configuration程序集,在HAZID_DataContext所在的类文件顶部引入命名空间:
using System.Configuration;
  1. 修改HAZID_DataContext的构造方法,实现环境配置读取和连接字符串名称映射:
public HAZID_DataContext() : base(GetConnectionStringName())
{
    System.Data.Entity.SqlServer.SqlProviderServices.UseScopeIdentity = false;
}

// 新增私有静态方法获取对应环境的连接字符串名称
private static string GetConnectionStringName()
{
    // 读取配置的工作环境
    string workEnv = ConfigurationManager.AppSettings["WorkEnvironment"]?.Trim() ?? "Development";
    
    // 按环境映射连接字符串名称,C#版本低于7.0不支持switch表达式的话可以替换为下方的普通switch写法
    return workEnv switch
    {
        "Development" => "HAZIDDEV",
        "Test" => "HAZIDTEST",
        "Production" => "HAZIDPROD",
        // 未匹配到的环境默认走开发库,也可以根据需求抛出配置异常
        _ => "HAZIDDEV"
    };
}

低版本C#兼容写法:

private static string GetConnectionStringName()
{
    string workEnv = ConfigurationManager.AppSettings["WorkEnvironment"]?.Trim() ?? "Development";
    switch (workEnv)
    {
        case "Test":
            return "HAZIDTEST";
        case "Production":
            return "HAZIDPROD";
        case "Development":
        default:
            return "HAZIDDEV";
    }
}
  1. 补全Web.config的connectionStrings节点,新增生产环境连接配置:
<connectionStrings>
  <add name="HAZIDTEST" connectionString="Server=DTISQLVS02\DEVELOPMENT;Database=HAZID;Trusted_Connection=True;" providerName="System.Data.SqlClient" />
  <add name="HAZIDDEV" connectionString="Server=DTIDEV27;Database=HAZIDDEV;Trusted_Connection=True;" providerName="System.Data.SqlClient" />
  <!-- 新增生产环境连接字符串,替换为实际的生产库配置 -->
  <add name="HAZIDPROD" connectionString="你的生产库连接地址" providerName="System.Data.SqlClient" />
</connectionStrings>

使用方式

后续切换环境只需要修改Web.config中appSettings节点的WorkEnvironment值即可:

  • 开发环境设为Development
  • 测试环境设为Test
  • 生产环境设为Production

内容的提问来源于stack exchange,提问作者Carl Cummings

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:15:06