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

.NET 6不使用Entity Framework配置多数据库连接字符串方法

.NET 6 非EF场景下多连接字符串配置实现

我是.NET Core新手,此前所有项目均基于.NET Framework开发,目前需要将项目迁移至.NET 6。
在.NET Framework环境中,我习惯在Web.config中配置多组连接字符串:

<add key="ConnStr" value="Data Source=DESKTOP-854AIA7;Initial Catalog=TestOTA;User ID=sa;Password=1"/>
<add key="ConnStrReport" value="Data Source=192.168.5.226;Initial Catalog=cachrsp01;User ID=sa;Password=123@123"/>
<add key="ConnStrLog" value="Data Source=192.168.5.226;Initial Catalog=loghrsp01;User ID=sa;Password=123@123"/>

之后编写统一的连接字符串管理类,在属性内部读取配置、做空值校验:

public class AccessToDb{
     public static string ConnectionString
    {
        get
        {
            string tmp = System.Configuration.ConfigurationManager.AppSettings["ConnStr"];
            if (string.IsNullOrEmpty(tmp))
            {
                // 执行空值处理逻辑
            }
            return tmp;
        }
    }
    public static string ConnectionStringLog
    {
        get
        {
            string tmp = System.Configuration.ConfigurationManager.AppSettings["ConnStrLog"];
            if (string.IsNullOrEmpty(tmp))
            {
                // 执行空值处理逻辑
            }
            return tmp;
        }
    }
}

业务代码中根据实际需求调用对应静态属性,即可创建对应数据库的连接,调用方式如下:

objSqlCommand.Connection = new SqlConnection(AccessToDb.ConnectionString);
// 调用日志库连接时使用
objSqlCommand.Connection = new SqlConnection(AccessToDb.ConnectionStringLog);

迁移到.NET 6后,检索到的公开资料里连接字符串配置方案全部基于Entity Framework实现,无法匹配手写ADO.NET的使用场景,不清楚连接字符串的配置位置、初始化方式、业务调用方法。


验证可行的落地方案

经过实际调试,以下方案可以完全对齐原有.NET Framework的使用习惯,无需引入EF相关依赖:

  • 配置连接字符串:在项目根目录的appsettings.json文件中新增ConnectionStrings配置节点,写入所有需要用到的数据库连接信息:
{
    "ConnectionStrings": {
        "mymainDB": "server=192.168.5.226;database=cachrsp01;user id=sa;password='123@123'",
        "myLogDB": "server=192.168.5.226;database=loghrsp01;user id=sa;password='123@123'"
    }
}
  • 调整连接管理类:保留原有静态类的设计,移除原ConfigurationManager读取逻辑,将属性改为可赋值的静态属性:
public class AccessToDb
{
    public static string ConnectionString { get; set; }
    public static string ConnectionStringLog { get; set; }
}
  • 启动阶段初始化配置:在项目启动入口Program.cs中,通过配置框架读取appsettings.json中的连接字符串,给静态类的属性赋值完成初始化:
AccessToDb.ConnectionString = builder.Configuration.GetConnectionString("mymainDB");
AccessToDb.ConnectionStringLog = builder.Configuration.GetConnectionString("myLogDB");

完成以上配置后,业务代码中的连接调用逻辑和.NET Framework时期完全一致,不需要修改原有SqlConnection相关的业务代码,该方案已实测可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:00:10