//using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using Tiobon.Core.Common.DB.Dapper.Const; using Tiobon.Core.Common.DB.Dapper; using Tiobon.Core.Common.DB.Dapper.Enums; using Tiobon.Core.Common.DB.Dapper.Extensions; namespace Tiobon.Core.Common.DB.Dapper.DBManager; public class DBServerProvider { private static Dictionary ConnectionPool = new Dictionary(StringComparer.OrdinalIgnoreCase); public static string DefaultConnName = "defalut"; static DBServerProvider() { SetConnection(DefaultConnName, AppSetting.DbConnectionString); } public static void SetConnection(string key, string val) { if (ConnectionPool.ContainsKey(key)) { ConnectionPool[key] = val; return; } ConnectionPool.Add(key, val); } /// /// 设置默认数据库连接 /// /// public static void SetDefaultConnection(string val) { SetConnection(DefaultConnName, val); } public static string GetConnectionString(string key) { key = key ?? DefaultConnName; if (ConnectionPool.ContainsKey(key)) { return ConnectionPool[key]; } return key; } /// /// 获取默认数据库连接 /// /// public static string GetConnectionString() { return GetConnectionString(DefaultConnName); } //private static bool _isMysql = DBType.Name == DbCurrentType.MySql.ToString(); private static bool _isMysql = false; public static IDbConnection GetDbConnection(string connString = null) { if (_isMysql) { return new MySql.Data.MySqlClient.MySqlConnection(connString ?? ConnectionPool[DefaultConnName]); } return new SqlConnection(connString ?? ConnectionPool[DefaultConnName]); } public static IDbConnection GetMyDbConnection(string connString = null) { //new MySql.Data.MySqlClient.MySqlConnection(connString); string mySql = "Data Source=132.232.2.109;Database=mysql;User ID=xx;Password=xxx;pooling=true;CharSet=utf8;port=3306;sslmode=none"; // MySqlConnector return new MySql.Data.MySqlClient.MySqlConnection(mySql); } //public static VOLContext DbContext //{ // get { return GetEFDbContext(); } //} //public static VOLContext GetEFDbContext() //{ // return GetEFDbContext(null); //} //public static VOLContext GetEFDbContext(string dbName) //{ // VOLContext beefContext = Utilities.HttpContext.Current.RequestServices.GetService(typeof(VOLContext)) as VOLContext; // if (dbName != null) // { // if (!ConnectionPool.ContainsKey(dbName)) // { // throw new Exception("数据库连接名称错误"); // } // beefContext.Database.GetDbConnection().ConnectionString = ConnectionPool[dbName]; // } // return beefContext; //} //public static void SetDbContextConnection(VOLContext beefContext, string dbName) //{ // if (!ConnectionPool.ContainsKey(dbName)) // { // throw new Exception("数据库连接名称错误"); // } // beefContext.Database.GetDbConnection().ConnectionString = ConnectionPool[dbName]; //} /// /// 获取实体的数据库连接 /// /// /// /// //public static void GetDbContextConnection(VOLContext defaultDbContext) //{ // //string connstr= defaultDbContext.Database.GetDbConnection().ConnectionString; // // if (connstr != ConnectionPool[DefaultConnName]) // // { // // defaultDbContext.Database.GetDbConnection().ConnectionString = ConnectionPool[DefaultConnName]; // // }; //} public static ISqlDapper SqlDapper { get { return new SqlDapper(DefaultConnName); } } public static ISqlDapper GetSqlDapper(string dbName = null) { return new SqlDapper(dbName ?? DefaultConnName); } public static ISqlDapper GetSqlDapper() { //获取实体真实的数据库连接池对象名,如果不存在则用默认数据连接池名 string dbName = typeof(TEntity).GetTypeCustomValue(x => x.DBName) ?? DefaultConnName; return GetSqlDapper(dbName); } }