.NET EF6实现适配多种数据库

本文详细介绍如何在配置文件中设置数据库信息,包括SQLServer和MySQL,并通过代码动态读取这些配置来创建数据库连接。此外,还展示了如何在DbContext子类中重写构造函数以使用动态获取的数据库连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.配置文件中添加数据库信息

<!--DBType value:SQLServer\MySQL-->
    <add key="DBType" value="MySQL"/>
    <!--数据库信息-->
    <add key="DataSource" value="."/>
    <add key="DB" value=""/>
    <add key="User" value=""/>
    <add key="Pwd" value=""/>

 

2.动态获取数据库信息

public class DBconfig 
    {
        private static readonly string dbType = System.Configuration.ConfigurationManager.AppSettings["DBType"];
        private static readonly string dataSource = System.Configuration.ConfigurationManager.AppSettings["DataSource"];
        private static readonly string db = System.Configuration.ConfigurationManager.AppSettings["DB"];
        private static readonly string user = System.Configuration.ConfigurationManager.AppSettings["User"];
        private static readonly string pwd = System.Configuration.ConfigurationManager.AppSettings["Pwd"];
        public static DbConnection GetConn()
        {
            if (dbType=="SQLServer")
            {
                System.Data.SqlClient.SqlConnectionStringBuilder sqlBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder();
                sqlBuilder.DataSource = dataSource;
                sqlBuilder.InitialCatalog = db;
                sqlBuilder.UserID = user;
                sqlBuilder.Password = pwd;
                sqlBuilder.PersistSecurityInfo = true;
                sqlBuilder.IntegratedSecurity = true;
                return new SqlConnection(sqlBuilder.ToString());               
                
            }
            else if(dbType=="MySQL")
            {
                MySql.Data.MySqlClient.MySqlConnectionStringBuilder sqlBuilder = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder();
                sqlBuilder.Server = dataSource;
                sqlBuilder.Database = db;
                sqlBuilder.UserID = user;
                sqlBuilder.Password = pwd;

                return new MySqlConnection(sqlBuilder.ToString());
            }
            return null;
        }

3.重写DbContext子类的构造函数

public Entities() : base(DBconfig.GetConn(), true) { }

 

转载于:https://www.cnblogs.com/zhanghuang/p/11352893.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值