Esempio n. 1
0
        /// <summary>
        /// Gets the Dapper Extensions Implementation
        /// </summary>
        public static IDapperImplementor Instance(DataBaseType dbType = DefaultDBType)
        {
            IDapperImplementor instance;

            if (!_instanceList.TryGetValue(dbType, out instance))
            {
                ISqlDialect sqlDialect;
                switch (dbType)
                {
                case DataBaseType.SqlServer: sqlDialect = new SqlServerDialect(); break;

                case DataBaseType.Oracle: sqlDialect = new OracleDialect(); break;

                case DataBaseType.MySql: sqlDialect = new MySqlDialect(); break;

                default: sqlDialect = new SqlServerDialect(); break;
                }
                IDapperExtensionConfiguration iDapperExtensionsConfiguration = new DapperExtensionConfiguration(
                    typeof(AutoClassMapper <>),
                    new List <Assembly>(),
                    sqlDialect
                    );
                instance = InstanceFactory(iDapperExtensionsConfiguration, dbType);
                _instanceList[dbType] = instance;
            }
            if (null == _DapperImplementor || _DapperImplementor.DbType != dbType)
            {
                _DapperImplementor = instance;
            }
            return(instance);
        }
Esempio n. 2
0
        /// <summary>
        /// 活动Dapper扩展对象的实例
        /// </summary>
        /// <param name="dbType">DB类型,默认SqlServer</param>
        /// <param name="ormMapperAssemblyList">ORM映射的程序集</param>
        /// <returns></returns>
        public static IDapperImplementor Instance(DataBaseType dbType = DefaultDBType, List <string> ormMapperAssemblyList = null)
        {
            IDapperImplementor instance;

            if (!_instanceList.TryGetValue(dbType, out instance))
            {
                ISqlDialect sqlDialect;
                switch (dbType)
                {
                case DataBaseType.SqlServer: sqlDialect = new SqlServerDialect(); break;

                case DataBaseType.Oracle: sqlDialect = new OracleDialect(); break;

                case DataBaseType.MySql: sqlDialect = new MySqlDialect(); break;

                default: sqlDialect = new SqlServerDialect(); break;
                }
                List <Assembly> assemblyList = new List <Assembly>();
                if (ormMapperAssemblyList != null)
                {
                    foreach (var item in ormMapperAssemblyList)
                    {
                        assemblyList.Add(Assembly.Load(item));
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(ormMapperAssemblyStr))
                    {
                        foreach (var item in ormMapperAssemblyStr.Split(';'))
                        {
                            if (!string.IsNullOrEmpty(item))
                            {
                                assemblyList.Add(Assembly.Load(item));
                            }
                        }
                    }
                }
                IDapperExtensionConfiguration iDapperExtensionsConfiguration = new DapperExtensionConfiguration(
                    typeof(AutoClassMapper <>),
                    assemblyList,
                    sqlDialect
                    );
                instance = InstanceFactory(iDapperExtensionsConfiguration, dbType);
                _instanceList[dbType] = instance;
            }
            if (!IsEnabledMultipleDBType)
            {
                if (null == _DapperImplementor)
                {
                    _DapperImplementor = instance;
                }
            }
            else
            {
                if (null == _DapperImplementor_MultipleDBType || _DapperImplementor_MultipleDBType.DbType != dbType)
                {
                    _DapperImplementor_MultipleDBType = instance;
                }
            }
            return(instance);
        }