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

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) { }

 

posted @ 2019-08-14 16:33  是卡卡罗特啊  阅读(902)  评论(0编辑  收藏  举报