General.Entities/Dapper/DbConnectionFactory.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Microsoft.Data.SqlClient;
using Microsoft.Extensions.Configuration;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;

namespace General.Entities.Dapper
{
    public class DbConnectionFactory
    {
        /// <summary>
        /// 数据库连接字符串缓存
        /// </summary>
        public static ConcurrentDictionary<string, string> connStrDict = new ConcurrentDictionary<string, string>();
        public static IConfiguration Configuration { get; set; }

        private static string GetConnString(string dbKey)
        {
            string connString = string.Empty;
            if (connStrDict.Keys.Contains(dbKey))
            {
                connString = connStrDict[dbKey];
            }
            else
            {
                connString = Configuration.GetConnectionString(dbKey);
                connStrDict.TryAdd(dbKey, connString);
            }
            return connString;
        }

        public static IDbConnection GetConnection(string dbKey, DbType dbType = DbType.SqlServer)
        {
            IDbConnection connObj = null;
            switch (dbType)
            {
                case DbType.SqlServer:
                    connObj = new Microsoft.Data.SqlClient.SqlConnection(GetConnString(dbKey));
                    break;
                case DbType.MySql:
                    connObj = new MySqlConnection(GetConnString(dbKey));
                    break;
                case DbType.Access:
                    //connObj = new OleDbConnection(GetConnString(dbKey));
                    break;
                case DbType.SqlLite:
                    break;
                case DbType.Oracle:
                    break;
            }

            if (connObj.State != ConnectionState.Open)
            {
                connObj.Open();
            }
后面还有 39 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。