diff --git a/SqlSugar/InstanceFactory.cs b/SqlSugar/InstanceFactory.cs index f0f965ac5..f812b48fd 100644 --- a/SqlSugar/InstanceFactory.cs +++ b/SqlSugar/InstanceFactory.cs @@ -14,24 +14,45 @@ namespace SqlSugar #region Queryable public static ISugarQueryable GetQueryable(ConnectionConfig currentConnectionConfig) { - string className = "Queryable"; - className = GetClassName(currentConnectionConfig.DbType, className); - ISugarQueryable result = CreateInstance>(className); - return result; + if (currentConnectionConfig.DbType == DbType.SqlServer) + { + return new SqlServerQueryable(); + } + else + { + string className = "Queryable"; + className = GetClassName(currentConnectionConfig.DbType, className); + ISugarQueryable result = CreateInstance>(className); + return result; + } } public static ISugarQueryable GetQueryable(ConnectionConfig currentConnectionConfig) { - string className = "Queryable"; - className = GetClassName(currentConnectionConfig.DbType, className); - ISugarQueryable result = CreateInstance>(className); - return result; + if (currentConnectionConfig.DbType == DbType.SqlServer) + { + return new SqlServerQueryable(); + } + else + { + string className = "Queryable"; + className = GetClassName(currentConnectionConfig.DbType, className); + ISugarQueryable result = CreateInstance>(className); + return result; + } } public static ISugarQueryable GetQueryable(ConnectionConfig currentConnectionConfig) { - string className = "Queryable"; - className = GetClassName(currentConnectionConfig.DbType, className); - ISugarQueryable result = CreateInstance>(className); - return result; + if (currentConnectionConfig.DbType == DbType.SqlServer) + { + return new SqlServerQueryable(); + } + else + { + string className = "Queryable"; + className = GetClassName(currentConnectionConfig.DbType, className); + ISugarQueryable result = CreateInstance>(className); + return result; + } } public static ISugarQueryable GetQueryable(ConnectionConfig currentConnectionConfig) { @@ -72,8 +93,15 @@ namespace SqlSugar public static QueryBuilder GetQueryBuilder(ConnectionConfig currentConnectionConfig) { - QueryBuilder result = CreateInstance(GetClassName(currentConnectionConfig.DbType, "QueryBuilder")); - return result; + if (currentConnectionConfig.DbType == DbType.SqlServer) + { + return new SqlServerQueryBuilder(); + } + else + { + QueryBuilder result = CreateInstance(GetClassName(currentConnectionConfig.DbType, "QueryBuilder")); + return result; + } } public static InsertBuilder GetInsertBuilder(ConnectionConfig currentConnectionConfig) { @@ -93,8 +121,15 @@ namespace SqlSugar public static ILambdaExpressions GetLambdaExpressions(ConnectionConfig currentConnectionConfig) { - ILambdaExpressions result = CreateInstance(GetClassName(currentConnectionConfig.DbType, "ExpressionContext")); - return result; + if (currentConnectionConfig.DbType == DbType.SqlServer) + { + return new SqlServerExpressionContext(); + } + else + { + ILambdaExpressions result = CreateInstance(GetClassName(currentConnectionConfig.DbType, "ExpressionContext")); + return result; + } } public static ISqlBuilder GetSqlbuilder(ConnectionConfig currentConnectionConfig) @@ -161,15 +196,15 @@ namespace SqlSugar } private static Restult CreateInstance(string className) { - return CreateInstance(className, typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5),typeof(T6)); + return CreateInstance(className, typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6)); } private static Restult CreateInstance(string className) { - return CreateInstance< Restult > (className, typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5),typeof(T6),typeof(T7)); + return CreateInstance(className, typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7)); } private static Restult CreateInstance(string className) { - return CreateInstance(className, typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7),typeof(T8)); + return CreateInstance(className, typeof(T), typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8)); } private static Restult CreateInstance(string className, params Type[] types) {