mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-20 02:29:39 +08:00
-
This commit is contained in:
@@ -16,121 +16,121 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
string className = "Queryable";
|
string className = "Queryable";
|
||||||
className = GetClassName(currentConnectionConfig.DbType, className);
|
className = GetClassName(currentConnectionConfig.DbType, className);
|
||||||
ISugarQueryable<T> reval = CreateInstance<T, ISugarQueryable<T>>(className, currentConnectionConfig.DbType);
|
ISugarQueryable<T> result = CreateInstance<T, ISugarQueryable<T>>(className);
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
public static ISugarQueryable<T, T2> GetQueryable<T, T2>(ConnectionConfig currentConnectionConfig)
|
public static ISugarQueryable<T, T2> GetQueryable<T, T2>(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
string className = "Queryable";
|
string className = "Queryable";
|
||||||
className = GetClassName(currentConnectionConfig.DbType, className);
|
className = GetClassName(currentConnectionConfig.DbType, className);
|
||||||
ISugarQueryable<T, T2> reval = CreateInstance<T, T2, ISugarQueryable<T, T2>>(className, currentConnectionConfig.DbType);
|
ISugarQueryable<T, T2> result = CreateInstance<T, T2, ISugarQueryable<T, T2>>(className);
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
public static ISugarQueryable<T, T2, T3> GetQueryable<T, T2, T3>(ConnectionConfig currentConnectionConfig)
|
public static ISugarQueryable<T, T2, T3> GetQueryable<T, T2, T3>(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
string className = "Queryable";
|
string className = "Queryable";
|
||||||
className = GetClassName(currentConnectionConfig.DbType, className);
|
className = GetClassName(currentConnectionConfig.DbType, className);
|
||||||
ISugarQueryable<T, T2, T3> reval = CreateInstance<T, T2, T3, ISugarQueryable<T, T2, T3>>(className, currentConnectionConfig.DbType);
|
ISugarQueryable<T, T2, T3> result = CreateInstance<T, T2, T3, ISugarQueryable<T, T2, T3>>(className);
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
public static ISugarQueryable<T, T2, T3, T4> GetQueryable<T, T2, T3, T4>(ConnectionConfig currentConnectionConfig)
|
public static ISugarQueryable<T, T2, T3, T4> GetQueryable<T, T2, T3, T4>(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
string className = "Queryable";
|
string className = "Queryable";
|
||||||
className = GetClassName(currentConnectionConfig.DbType, className);
|
className = GetClassName(currentConnectionConfig.DbType, className);
|
||||||
ISugarQueryable<T, T2, T3, T4> reval = CreateInstance<T, T2, T3, T4, ISugarQueryable<T, T2, T3, T4>>(className, currentConnectionConfig.DbType);
|
ISugarQueryable<T, T2, T3, T4> result = CreateInstance<T, T2, T3, T4, ISugarQueryable<T, T2, T3, T4>>(className);
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
public static ISugarQueryable<T, T2, T3, T4, T5> GetQueryable<T, T2, T3, T4, T5>(ConnectionConfig currentConnectionConfig)
|
public static ISugarQueryable<T, T2, T3, T4, T5> GetQueryable<T, T2, T3, T4, T5>(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
string className = "Queryable";
|
string className = "Queryable";
|
||||||
className = GetClassName(currentConnectionConfig.DbType, className);
|
className = GetClassName(currentConnectionConfig.DbType, className);
|
||||||
ISugarQueryable<T, T2, T3, T4, T5> reval = CreateInstance<T, T2, T3, T4, T5, ISugarQueryable<T, T2, T3, T4, T5>>(className, currentConnectionConfig.DbType);
|
ISugarQueryable<T, T2, T3, T4, T5> result = CreateInstance<T, T2, T3, T4, T5, ISugarQueryable<T, T2, T3, T4, T5>>(className);
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
public static ISugarQueryable<T, T2, T3, T4, T5, T6> GetQueryable<T, T2, T3, T4, T5, T6>(ConnectionConfig currentConnectionConfig)
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6> GetQueryable<T, T2, T3, T4, T5, T6>(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
string className = "Queryable";
|
string className = "Queryable";
|
||||||
className = GetClassName(currentConnectionConfig.DbType, className);
|
className = GetClassName(currentConnectionConfig.DbType, className);
|
||||||
ISugarQueryable<T, T2, T3, T4, T5, T6> reval = CreateInstance<T, T2, T3, T4, T5, T6, ISugarQueryable<T, T2, T3, T4, T5, T6>>(className, currentConnectionConfig.DbType);
|
ISugarQueryable<T, T2, T3, T4, T5, T6> result = CreateInstance<T, T2, T3, T4, T5, T6, ISugarQueryable<T, T2, T3, T4, T5, T6>>(className);
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7> GetQueryable<T, T2, T3, T4, T5, T6, T7>(ConnectionConfig currentConnectionConfig)
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7> GetQueryable<T, T2, T3, T4, T5, T6, T7>(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
string className = "Queryable";
|
string className = "Queryable";
|
||||||
className = GetClassName(currentConnectionConfig.DbType, className);
|
className = GetClassName(currentConnectionConfig.DbType, className);
|
||||||
ISugarQueryable<T, T2, T3, T4, T5, T6, T7> reval = CreateInstance<T, T2, T3, T4, T5, T6, T7, ISugarQueryable<T, T2, T3, T4, T5, T6, T7>>(className, currentConnectionConfig.DbType);
|
ISugarQueryable<T, T2, T3, T4, T5, T6, T7> result = CreateInstance<T, T2, T3, T4, T5, T6, T7, ISugarQueryable<T, T2, T3, T4, T5, T6, T7>>(className);
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> GetQueryable<T, T2, T3, T4, T5, T6, T7, T8>(ConnectionConfig currentConnectionConfig)
|
public static ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> GetQueryable<T, T2, T3, T4, T5, T6, T7, T8>(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
string className = "Queryable";
|
string className = "Queryable";
|
||||||
className = GetClassName(currentConnectionConfig.DbType, className);
|
className = GetClassName(currentConnectionConfig.DbType, className);
|
||||||
ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> reval = CreateInstance<T, T2, T3, T4, T5, T6, T7, T8, ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8>>(className, currentConnectionConfig.DbType);
|
ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> result = CreateInstance<T, T2, T3, T4, T5, T6, T7, T8, ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8>>(className);
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public static QueryBuilder GetQueryBuilder(ConnectionConfig currentConnectionConfig)
|
public static QueryBuilder GetQueryBuilder(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
QueryBuilder reval = CreateInstance<QueryBuilder>(GetClassName(currentConnectionConfig.DbType, "QueryBuilder"), currentConnectionConfig.DbType);
|
QueryBuilder result = CreateInstance<QueryBuilder>(GetClassName(currentConnectionConfig.DbType, "QueryBuilder"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
public static InsertBuilder GetInsertBuilder(ConnectionConfig currentConnectionConfig)
|
public static InsertBuilder GetInsertBuilder(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
InsertBuilder reval = CreateInstance<InsertBuilder>(GetClassName(currentConnectionConfig.DbType, "InsertBuilder"), currentConnectionConfig.DbType);
|
InsertBuilder result = CreateInstance<InsertBuilder>(GetClassName(currentConnectionConfig.DbType, "InsertBuilder"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
public static UpdateBuilder GetUpdateBuilder(ConnectionConfig currentConnectionConfig)
|
public static UpdateBuilder GetUpdateBuilder(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
UpdateBuilder reval = CreateInstance<UpdateBuilder>(GetClassName(currentConnectionConfig.DbType, "UpdateBuilder"), currentConnectionConfig.DbType);
|
UpdateBuilder result = CreateInstance<UpdateBuilder>(GetClassName(currentConnectionConfig.DbType, "UpdateBuilder"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
public static DeleteBuilder GetDeleteBuilder(ConnectionConfig currentConnectionConfig)
|
public static DeleteBuilder GetDeleteBuilder(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
DeleteBuilder reval = CreateInstance<DeleteBuilder>(GetClassName(currentConnectionConfig.DbType, "DeleteBuilder"), currentConnectionConfig.DbType);
|
DeleteBuilder result = CreateInstance<DeleteBuilder>(GetClassName(currentConnectionConfig.DbType, "DeleteBuilder"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ILambdaExpressions GetLambdaExpressions(ConnectionConfig currentConnectionConfig)
|
public static ILambdaExpressions GetLambdaExpressions(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
ILambdaExpressions reval = CreateInstance<ILambdaExpressions>(GetClassName(currentConnectionConfig.DbType, "ExpressionContext"), currentConnectionConfig.DbType);
|
ILambdaExpressions result = CreateInstance<ILambdaExpressions>(GetClassName(currentConnectionConfig.DbType, "ExpressionContext"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ISqlBuilder GetSqlbuilder(ConnectionConfig currentConnectionConfig)
|
public static ISqlBuilder GetSqlbuilder(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
ISqlBuilder reval = CreateInstance<ISqlBuilder>(GetClassName(currentConnectionConfig.DbType, "Builder"), currentConnectionConfig.DbType);
|
ISqlBuilder result = CreateInstance<ISqlBuilder>(GetClassName(currentConnectionConfig.DbType, "Builder"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IDbBind GetDbBind(ConnectionConfig currentConnectionConfig)
|
public static IDbBind GetDbBind(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
IDbBind reval = CreateInstance<IDbBind>(GetClassName(currentConnectionConfig.DbType, "DbBind"), currentConnectionConfig.DbType);
|
IDbBind result = CreateInstance<IDbBind>(GetClassName(currentConnectionConfig.DbType, "DbBind"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IDbMaintenance GetDbMaintenance(ConnectionConfig currentConnectionConfig)
|
public static IDbMaintenance GetDbMaintenance(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
IDbMaintenance reval = CreateInstance<IDbMaintenance>(GetClassName(currentConnectionConfig.DbType, "DbMaintenance"), currentConnectionConfig.DbType);
|
IDbMaintenance result = CreateInstance<IDbMaintenance>(GetClassName(currentConnectionConfig.DbType, "DbMaintenance"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IDbFirst GetDbFirst(ConnectionConfig currentConnectionConfig)
|
public static IDbFirst GetDbFirst(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
IDbFirst reval = CreateInstance<IDbFirst>(GetClassName(currentConnectionConfig.DbType, "DbFirst"), currentConnectionConfig.DbType);
|
IDbFirst result = CreateInstance<IDbFirst>(GetClassName(currentConnectionConfig.DbType, "DbFirst"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ICodeFirst GetCodeFirst(ConnectionConfig currentConnectionConfig)
|
public static ICodeFirst GetCodeFirst(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
ICodeFirst reval = CreateInstance<ICodeFirst>(GetClassName(currentConnectionConfig.DbType, "CodeFirst"), currentConnectionConfig.DbType);
|
ICodeFirst result = CreateInstance<ICodeFirst>(GetClassName(currentConnectionConfig.DbType, "CodeFirst"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IAdo GetAdo(ConnectionConfig currentConnectionConfig)
|
public static IAdo GetAdo(ConnectionConfig currentConnectionConfig)
|
||||||
{
|
{
|
||||||
IAdo reval = CreateInstance<IAdo>(GetClassName(currentConnectionConfig.DbType, "Provider"), currentConnectionConfig.DbType);
|
IAdo result = CreateInstance<IAdo>(GetClassName(currentConnectionConfig.DbType, "Provider"));
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetClassName(string type, string name)
|
private static string GetClassName(string type, string name)
|
||||||
@@ -139,9 +139,41 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region CreateInstance
|
#region CreateInstance
|
||||||
private static Restult CreateInstance<T, Restult>(string className, string dbType)
|
private static Restult CreateInstance<T, Restult>(string className)
|
||||||
{
|
{
|
||||||
var cacheKey = className + typeof(T).FullName;
|
return CreateInstance<Restult>(className, typeof(T));
|
||||||
|
}
|
||||||
|
private static Restult CreateInstance<T, T2, Restult>(string className)
|
||||||
|
{
|
||||||
|
return CreateInstance<Restult>(className, typeof(T), typeof(T2));
|
||||||
|
}
|
||||||
|
private static Restult CreateInstance<T, T2, T3, Restult>(string className)
|
||||||
|
{
|
||||||
|
return CreateInstance<Restult>(className, typeof(T), typeof(T2), typeof(T3));
|
||||||
|
}
|
||||||
|
private static Restult CreateInstance<T, T2, T3, T4, Restult>(string className)
|
||||||
|
{
|
||||||
|
return CreateInstance<Restult>(className, typeof(T), typeof(T2), typeof(T3), typeof(T4));
|
||||||
|
}
|
||||||
|
private static Restult CreateInstance<T, T2, T3, T4, T5, Restult>(string className)
|
||||||
|
{
|
||||||
|
return CreateInstance<Restult>(className, typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5));
|
||||||
|
}
|
||||||
|
private static Restult CreateInstance<T, T2, T3, T4, T5, T6, Restult>(string className)
|
||||||
|
{
|
||||||
|
return CreateInstance<Restult>(className, typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5),typeof(T6));
|
||||||
|
}
|
||||||
|
private static Restult CreateInstance<T, T2, T3, T4, T5, T6, T7, Restult>(string className)
|
||||||
|
{
|
||||||
|
return CreateInstance< Restult > (className, typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5),typeof(T6),typeof(T7));
|
||||||
|
}
|
||||||
|
private static Restult CreateInstance<T, T2, T3, T4, T5, T6, T7, T8, Restult>(string className)
|
||||||
|
{
|
||||||
|
return CreateInstance<Restult>(className, typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7),typeof(T8));
|
||||||
|
}
|
||||||
|
private static Restult CreateInstance<Restult>(string className, params Type[] types)
|
||||||
|
{
|
||||||
|
var cacheKey = className + string.Join(",", types.Select(it => it.FullName));
|
||||||
Type type;
|
Type type;
|
||||||
if (typeCache.ContainsKey(cacheKey))
|
if (typeCache.ContainsKey(cacheKey))
|
||||||
{
|
{
|
||||||
@@ -151,7 +183,7 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
lock (typeCache)
|
lock (typeCache)
|
||||||
{
|
{
|
||||||
type = Type.GetType(className + "`1", true).MakeGenericType(typeof(T));
|
type = Type.GetType(className + "`" + types.Length, true).MakeGenericType(types);
|
||||||
Check.ArgumentNullException(type, string.Format(ErrorMessage.ObjNotExist, className));
|
Check.ArgumentNullException(type, string.Format(ErrorMessage.ObjNotExist, className));
|
||||||
if (!typeCache.ContainsKey(cacheKey))
|
if (!typeCache.ContainsKey(cacheKey))
|
||||||
{
|
{
|
||||||
@@ -159,171 +191,10 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var reval = (Restult)Activator.CreateInstance(type, true);
|
var result = (Restult)Activator.CreateInstance(type, true);
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
private static Restult CreateInstance<T, T2, Restult>(string className, string dbType)
|
private static T CreateInstance<T>(string className)
|
||||||
{
|
|
||||||
var cacheKey = className + typeof(T).FullName + typeof(T2).FullName;
|
|
||||||
Type type;
|
|
||||||
if (typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
type = typeCache[cacheKey];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lock (typeCache)
|
|
||||||
{
|
|
||||||
type = Type.GetType(className + "`2", true).MakeGenericType(typeof(T), typeof(T2));
|
|
||||||
Check.ArgumentNullException(type, string.Format(ErrorMessage.ObjNotExist, className));
|
|
||||||
if (!typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
typeCache.Add(cacheKey, type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var reval = (Restult)Activator.CreateInstance(type, true);
|
|
||||||
return reval;
|
|
||||||
}
|
|
||||||
private static Restult CreateInstance<T, T2, T3, Restult>(string className, string dbType)
|
|
||||||
{
|
|
||||||
var cacheKey = className + typeof(T).FullName + typeof(T2).FullName + typeof(T3).FullName;
|
|
||||||
Type type;
|
|
||||||
if (typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
type = typeCache[cacheKey];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lock (typeCache)
|
|
||||||
{
|
|
||||||
type = Type.GetType(className + "`3", true).MakeGenericType(typeof(T), typeof(T2), typeof(T3));
|
|
||||||
Check.ArgumentNullException(type, string.Format(ErrorMessage.ObjNotExist, className));
|
|
||||||
if (!typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
typeCache.Add(cacheKey, type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var reval = (Restult)Activator.CreateInstance(type, true);
|
|
||||||
return reval;
|
|
||||||
}
|
|
||||||
private static Restult CreateInstance<T, T2, T3, T4, Restult>(string className, string dbType)
|
|
||||||
{
|
|
||||||
var cacheKey = className + typeof(T).FullName + typeof(T2).FullName + typeof(T3).FullName + typeof(T4).FullName;
|
|
||||||
Type type;
|
|
||||||
if (typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
type = typeCache[cacheKey];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lock (typeCache)
|
|
||||||
{
|
|
||||||
type = Type.GetType(className + "`4", true).MakeGenericType(typeof(T), typeof(T2), typeof(T3), typeof(T4));
|
|
||||||
Check.ArgumentNullException(type, string.Format(ErrorMessage.ObjNotExist, className));
|
|
||||||
if (!typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
typeCache.Add(cacheKey, type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var reval = (Restult)Activator.CreateInstance(type, true);
|
|
||||||
return reval;
|
|
||||||
}
|
|
||||||
private static Restult CreateInstance<T, T2, T3, T4, T5, Restult>(string className, string dbType)
|
|
||||||
{
|
|
||||||
var cacheKey = className + typeof(T).FullName + typeof(T2).FullName + typeof(T3).FullName + typeof(T4).FullName + typeof(T5).FullName;
|
|
||||||
Type type;
|
|
||||||
if (typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
type = typeCache[cacheKey];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lock (typeCache)
|
|
||||||
{
|
|
||||||
type = Type.GetType(className + "`5", true).MakeGenericType(typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5));
|
|
||||||
Check.ArgumentNullException(type, string.Format(ErrorMessage.ObjNotExist, className));
|
|
||||||
if (!typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
typeCache.Add(cacheKey, type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var reval = (Restult)Activator.CreateInstance(type, true);
|
|
||||||
return reval;
|
|
||||||
}
|
|
||||||
private static Restult CreateInstance<T, T2, T3, T4, T5, T6, Restult>(string className, string dbType)
|
|
||||||
{
|
|
||||||
var cacheKey = className + typeof(T).FullName + typeof(T2).FullName + typeof(T3).FullName + typeof(T4).FullName + typeof(T5).FullName + typeof(T6).FullName;
|
|
||||||
Type type;
|
|
||||||
if (typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
type = typeCache[cacheKey];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lock (typeCache)
|
|
||||||
{
|
|
||||||
type = Type.GetType(className + "`6", true).MakeGenericType(typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6));
|
|
||||||
Check.ArgumentNullException(type, string.Format(ErrorMessage.ObjNotExist, className));
|
|
||||||
if (!typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
typeCache.Add(cacheKey, type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var reval = (Restult)Activator.CreateInstance(type, true);
|
|
||||||
return reval;
|
|
||||||
}
|
|
||||||
private static Restult CreateInstance<T, T2, T3, T4, T5, T6, T7, Restult>(string className, string dbType)
|
|
||||||
{
|
|
||||||
var cacheKey = className + typeof(T).FullName + typeof(T2).FullName + typeof(T3).FullName + typeof(T4).FullName + typeof(T5).FullName + typeof(T6).FullName + typeof(T7).FullName;
|
|
||||||
Type type;
|
|
||||||
if (typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
type = typeCache[cacheKey];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lock (typeCache)
|
|
||||||
{
|
|
||||||
type = Type.GetType(className + "`7", true).MakeGenericType(typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7));
|
|
||||||
Check.ArgumentNullException(type, string.Format(ErrorMessage.ObjNotExist, className));
|
|
||||||
if (!typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
typeCache.Add(cacheKey, type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var reval = (Restult)Activator.CreateInstance(type, true);
|
|
||||||
return reval;
|
|
||||||
}
|
|
||||||
private static Restult CreateInstance<T, T2, T3, T4, T5, T6, T7, T8, Restult>(string className, string dbType)
|
|
||||||
{
|
|
||||||
var cacheKey = className + typeof(T).FullName + typeof(T2).FullName + typeof(T3).FullName + typeof(T4).FullName + typeof(T5).FullName + typeof(T6).FullName + typeof(T7).FullName + typeof(T8).FullName;
|
|
||||||
Type type;
|
|
||||||
if (typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
type = typeCache[cacheKey];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lock (typeCache)
|
|
||||||
{
|
|
||||||
type = Type.GetType(className + "`8", true).MakeGenericType(typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8));
|
|
||||||
Check.ArgumentNullException(type, string.Format(ErrorMessage.ObjNotExist, className));
|
|
||||||
if (!typeCache.ContainsKey(cacheKey))
|
|
||||||
{
|
|
||||||
typeCache.Add(cacheKey, type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var reval = (Restult)Activator.CreateInstance(type, true);
|
|
||||||
return reval;
|
|
||||||
}
|
|
||||||
private static T CreateInstance<T>(string className, string dbType)
|
|
||||||
{
|
{
|
||||||
Type type;
|
Type type;
|
||||||
if (typeCache.ContainsKey(className))
|
if (typeCache.ContainsKey(className))
|
||||||
@@ -342,8 +213,8 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var reval = (T)Activator.CreateInstance(type, true);
|
var result = (T)Activator.CreateInstance(type, true);
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user