/// <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); }
/// <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); }