Update Core

This commit is contained in:
skx 2019-12-11 18:13:42 +08:00
parent 9418d30c3e
commit 04256d9d2e
15 changed files with 87 additions and 11 deletions

View File

@ -275,6 +275,7 @@ namespace SqlSugar
if (this.IsClearParameters) if (this.IsClearParameters)
sqlCommand.Parameters.Clear(); sqlCommand.Parameters.Clear();
ExecuteAfter(sql, parameters); ExecuteAfter(sql, parameters);
sqlCommand.Dispose();
return count; return count;
} }
catch (Exception ex) catch (Exception ex)
@ -310,6 +311,7 @@ namespace SqlSugar
sqlCommand.Parameters.Clear(); sqlCommand.Parameters.Clear();
ExecuteAfter(sql, parameters); ExecuteAfter(sql, parameters);
SetConnectionEnd(sql); SetConnectionEnd(sql);
sqlCommand.Dispose();
return sqlDataReader; return sqlDataReader;
} }
catch (Exception ex) catch (Exception ex)
@ -339,6 +341,7 @@ namespace SqlSugar
if (this.IsClearParameters) if (this.IsClearParameters)
sqlCommand.Parameters.Clear(); sqlCommand.Parameters.Clear();
ExecuteAfter(sql, parameters); ExecuteAfter(sql, parameters);
sqlCommand.Dispose();
return ds; return ds;
} }
catch (Exception ex) catch (Exception ex)
@ -371,6 +374,7 @@ namespace SqlSugar
if (this.IsClearParameters) if (this.IsClearParameters)
sqlCommand.Parameters.Clear(); sqlCommand.Parameters.Clear();
ExecuteAfter(sql, parameters); ExecuteAfter(sql, parameters);
sqlCommand.Dispose();
return scalar; return scalar;
} }
catch (Exception ex) catch (Exception ex)
@ -404,6 +408,7 @@ namespace SqlSugar
if (this.IsClearParameters) if (this.IsClearParameters)
sqlCommand.Parameters.Clear(); sqlCommand.Parameters.Clear();
ExecuteAfter(sql, parameters); ExecuteAfter(sql, parameters);
sqlCommand.Dispose();
return count; return count;
} }
catch (Exception ex) catch (Exception ex)
@ -440,6 +445,7 @@ namespace SqlSugar
sqlCommand.Parameters.Clear(); sqlCommand.Parameters.Clear();
ExecuteAfter(sql, parameters); ExecuteAfter(sql, parameters);
SetConnectionEnd(sql); SetConnectionEnd(sql);
sqlCommand.Dispose();
return sqlDataReader; return sqlDataReader;
} }
catch (Exception ex) catch (Exception ex)
@ -468,6 +474,7 @@ namespace SqlSugar
if (this.IsClearParameters) if (this.IsClearParameters)
sqlCommand.Parameters.Clear(); sqlCommand.Parameters.Clear();
ExecuteAfter(sql, parameters); ExecuteAfter(sql, parameters);
sqlCommand.Dispose();
return scalar; return scalar;
} }
catch (Exception ex) catch (Exception ex)

View File

@ -71,7 +71,7 @@ namespace SqlSugar
} }
public ISugarQueryable<T> Clone() public ISugarQueryable<T> Clone()
{ {
var queryable = this.Context.Queryable<T>().WithCacheIF(IsCache, CacheTime); var queryable = this.Context.Queryable<object>().Select<T>().WithCacheIF(IsCache, CacheTime);
CopyQueryBuilder(queryable.QueryBuilder); CopyQueryBuilder(queryable.QueryBuilder);
((QueryableProvider<T>)queryable).MapperAction = this.MapperAction; ((QueryableProvider<T>)queryable).MapperAction = this.MapperAction;
((QueryableProvider<T>)queryable).MapperActionWithCache = this.MapperActionWithCache; ((QueryableProvider<T>)queryable).MapperActionWithCache = this.MapperActionWithCache;

View File

@ -145,6 +145,14 @@ namespace SqlSugar
{ {
ILambdaExpressions resolveExpress = this.LambdaExpressions; ILambdaExpressions resolveExpress = this.LambdaExpressions;
this.LambdaExpressions.Clear(); this.LambdaExpressions.Clear();
if (this.Context.CurrentConnectionConfig.MoreSettings != null)
{
resolveExpress.PgSqlIsAutoToLower = this.Context.CurrentConnectionConfig.MoreSettings.PgSqlIsAutoToLower;
}
else
{
resolveExpress.PgSqlIsAutoToLower = true;
}
resolveExpress.MappingColumns = Context.MappingColumns; resolveExpress.MappingColumns = Context.MappingColumns;
resolveExpress.MappingTables = Context.MappingTables; resolveExpress.MappingTables = Context.MappingTables;
resolveExpress.IgnoreComumnList = Context.IgnoreColumns; resolveExpress.IgnoreComumnList = Context.IgnoreColumns;

View File

@ -99,6 +99,14 @@ namespace SqlSugar
{ {
ILambdaExpressions resolveExpress = this.LambdaExpressions; ILambdaExpressions resolveExpress = this.LambdaExpressions;
this.LambdaExpressions.Clear(); this.LambdaExpressions.Clear();
if (this.Context.CurrentConnectionConfig.MoreSettings != null)
{
resolveExpress.PgSqlIsAutoToLower = this.Context.CurrentConnectionConfig.MoreSettings.PgSqlIsAutoToLower;
}
else
{
resolveExpress.PgSqlIsAutoToLower = true;
}
resolveExpress.MappingColumns = Context.MappingColumns; resolveExpress.MappingColumns = Context.MappingColumns;
resolveExpress.MappingTables = Context.MappingTables; resolveExpress.MappingTables = Context.MappingTables;
resolveExpress.IgnoreComumnList = Context.IgnoreColumns; resolveExpress.IgnoreComumnList = Context.IgnoreColumns;

View File

@ -220,6 +220,14 @@ namespace SqlSugar
resolveType = resolveType.IsIn(ResolveExpressType.SelectSingle, ResolveExpressType.FieldSingle) ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple; resolveType = resolveType.IsIn(ResolveExpressType.SelectSingle, ResolveExpressType.FieldSingle) ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple;
} }
this.LambdaExpressions.Clear(); this.LambdaExpressions.Clear();
if (this.Context.CurrentConnectionConfig.MoreSettings != null)
{
resolveExpress.PgSqlIsAutoToLower = this.Context.CurrentConnectionConfig.MoreSettings.PgSqlIsAutoToLower;
}
else
{
resolveExpress.PgSqlIsAutoToLower = true;
}
resolveExpress.JoinQueryInfos = Builder.QueryBuilder.JoinQueryInfos; resolveExpress.JoinQueryInfos = Builder.QueryBuilder.JoinQueryInfos;
resolveExpress.IsSingle = IsSingle(); resolveExpress.IsSingle = IsSingle();
resolveExpress.MappingColumns = Context.MappingColumns; resolveExpress.MappingColumns = Context.MappingColumns;

View File

@ -116,6 +116,14 @@ namespace SqlSugar
{ {
ILambdaExpressions resolveExpress = this.LambdaExpressions; ILambdaExpressions resolveExpress = this.LambdaExpressions;
this.LambdaExpressions.Clear(); this.LambdaExpressions.Clear();
if (this.Context.CurrentConnectionConfig.MoreSettings != null)
{
resolveExpress.PgSqlIsAutoToLower = this.Context.CurrentConnectionConfig.MoreSettings.PgSqlIsAutoToLower;
}
else
{
resolveExpress.PgSqlIsAutoToLower = true;
}
if (isMapping) if (isMapping)
{ {
resolveExpress.MappingColumns = Context.MappingColumns; resolveExpress.MappingColumns = Context.MappingColumns;

View File

@ -352,6 +352,14 @@ namespace SqlSugar
ILambdaExpressions expressionContext = sqlBuilder.QueryBuilder.LambdaExpressions; ILambdaExpressions expressionContext = sqlBuilder.QueryBuilder.LambdaExpressions;
expressionContext.MappingColumns = this.MappingColumns; expressionContext.MappingColumns = this.MappingColumns;
expressionContext.MappingTables = this.MappingTables; expressionContext.MappingTables = this.MappingTables;
if (this.Context.CurrentConnectionConfig.MoreSettings != null)
{
expressionContext.PgSqlIsAutoToLower = this.Context.CurrentConnectionConfig.MoreSettings.PgSqlIsAutoToLower;
}
else
{
expressionContext.PgSqlIsAutoToLower = true;
}
if (this.Context.CurrentConnectionConfig.ConfigureExternalServices != null) if (this.Context.CurrentConnectionConfig.ConfigureExternalServices != null)
expressionContext.SqlFuncServices = this.Context.CurrentConnectionConfig.ConfigureExternalServices.SqlFuncServices; expressionContext.SqlFuncServices = this.Context.CurrentConnectionConfig.ConfigureExternalServices.SqlFuncServices;
expressionContext.Resolve(joinExpression, ResolveExpressType.Join); expressionContext.Resolve(joinExpression, ResolveExpressType.Join);

View File

@ -13,6 +13,7 @@ namespace SqlSugar
/// Some MYSQL databases do not support NVarchar set true /// Some MYSQL databases do not support NVarchar set true
/// </summary> /// </summary>
public bool MySqlDisableNarvchar { get; set; } public bool MySqlDisableNarvchar { get; set; }
public bool PgSqlIsAutoToLower = true;
public int DefaultCacheDurationInSeconds { get; set; } public int DefaultCacheDurationInSeconds { get; set; }
} }
} }

View File

@ -42,6 +42,7 @@ namespace SqlSugar
public MappingColumnList MappingColumns { get; set; } public MappingColumnList MappingColumns { get; set; }
public MappingTableList MappingTables { get; set; } public MappingTableList MappingTables { get; set; }
public IgnoreColumnList IgnoreComumnList { get; set; } public IgnoreColumnList IgnoreComumnList { get; set; }
public bool PgSqlIsAutoToLower { get; set; }
public List<SqlFuncExternal> SqlFuncServices { get; set; } public List<SqlFuncExternal> SqlFuncServices { get; set; }
public bool IsSingle public bool IsSingle
{ {
@ -125,6 +126,7 @@ namespace SqlSugar
copyContext.InitMappingInfo = this.InitMappingInfo; copyContext.InitMappingInfo = this.InitMappingInfo;
copyContext.RefreshMapping = this.RefreshMapping; copyContext.RefreshMapping = this.RefreshMapping;
copyContext.ParameterIndex = this.ParameterIndex; copyContext.ParameterIndex = this.ParameterIndex;
copyContext.PgSqlIsAutoToLower = this.PgSqlIsAutoToLower;
return copyContext; return copyContext;
} }
public ExpressionContext GetCopyContextWithMapping() public ExpressionContext GetCopyContextWithMapping()
@ -138,6 +140,7 @@ namespace SqlSugar
copyContext.SqlFuncServices = this.SqlFuncServices; copyContext.SqlFuncServices = this.SqlFuncServices;
copyContext.InitMappingInfo = this.InitMappingInfo; copyContext.InitMappingInfo = this.InitMappingInfo;
copyContext.RefreshMapping = this.RefreshMapping; copyContext.RefreshMapping = this.RefreshMapping;
copyContext.PgSqlIsAutoToLower = this.PgSqlIsAutoToLower;
return copyContext; return copyContext;
} }
#endregion #endregion

View File

@ -26,6 +26,7 @@ namespace SqlSugar
string SingleTableNameSubqueryShortName { get; set; } string SingleTableNameSubqueryShortName { get; set; }
Action<Type> InitMappingInfo { get; set; } Action<Type> InitMappingInfo { get; set; }
Action RefreshMapping { get; set; } Action RefreshMapping { get; set; }
bool PgSqlIsAutoToLower { get; set; }
string GetAsString(string fieldName, string fieldValue); string GetAsString(string fieldName, string fieldValue);
void Resolve(Expression expression, ResolveExpressType resolveType); void Resolve(Expression expression, ResolveExpressType resolveType);

View File

@ -79,6 +79,7 @@ namespace SqlSugar
new KeyValuePair<string, CSharpDataType>("varchar",CSharpDataType.@string), new KeyValuePair<string, CSharpDataType>("varchar",CSharpDataType.@string),
new KeyValuePair<string, CSharpDataType>("character varying",CSharpDataType.@string), new KeyValuePair<string, CSharpDataType>("character varying",CSharpDataType.@string),
new KeyValuePair<string, CSharpDataType>("name",CSharpDataType.@string),
new KeyValuePair<string, CSharpDataType>("text",CSharpDataType.@string), new KeyValuePair<string, CSharpDataType>("text",CSharpDataType.@string),
new KeyValuePair<string, CSharpDataType>("char",CSharpDataType.@string), new KeyValuePair<string, CSharpDataType>("char",CSharpDataType.@string),
new KeyValuePair<string, CSharpDataType>("character",CSharpDataType.@string), new KeyValuePair<string, CSharpDataType>("character",CSharpDataType.@string),

View File

@ -34,11 +34,20 @@ namespace SqlSugar
return "select current_date"; return "select current_date";
} }
} }
public bool isAutoToLower
{
get
{
if (this.Context.CurrentConnectionConfig.MoreSettings == null) return true;
return this.Context.CurrentConnectionConfig.MoreSettings.PgSqlIsAutoToLower;
}
}
public override string GetTranslationColumnName(string propertyName) public override string GetTranslationColumnName(string propertyName)
{ {
if (propertyName.Contains(SqlTranslationLeft)) return propertyName; if (propertyName.Contains(SqlTranslationLeft)) return propertyName;
else else
return SqlTranslationLeft + propertyName.ToLower() + SqlTranslationRight; return SqlTranslationLeft + propertyName.ToLower(isAutoToLower) + SqlTranslationRight;
} }
//public override string GetNoTranslationColumnName(string name) //public override string GetNoTranslationColumnName(string name)
@ -55,7 +64,7 @@ namespace SqlSugar
.FirstOrDefault(it => .FirstOrDefault(it =>
it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) && it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) &&
it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase)); it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
return (mappingInfo == null ? SqlTranslationLeft + propertyName.ToLower() + SqlTranslationRight : SqlTranslationLeft + mappingInfo.DbColumnName.ToLower() + SqlTranslationRight); return (mappingInfo == null ? SqlTranslationLeft + propertyName.ToLower(isAutoToLower) + SqlTranslationRight : SqlTranslationLeft + mappingInfo.DbColumnName.ToLower(isAutoToLower) + SqlTranslationRight);
} }
public override string GetTranslationTableName(string name) public override string GetTranslationTableName(string name)
@ -69,7 +78,7 @@ namespace SqlSugar
name = (mappingInfo == null ? name : mappingInfo.DbTableName); name = (mappingInfo == null ? name : mappingInfo.DbTableName);
if (name.Contains(".")&& !name.Contains("(")) if (name.Contains(".")&& !name.Contains("("))
{ {
return string.Join(".", name.ToLower().Split('.').Select(it => SqlTranslationLeft + it + SqlTranslationRight)); return string.Join(".", name.ToLower(isAutoToLower).Split('.').Select(it => SqlTranslationLeft + it + SqlTranslationRight));
} }
else if (name.Contains("(")) else if (name.Contains("("))
{ {
@ -81,7 +90,7 @@ namespace SqlSugar
} }
else else
{ {
return SqlTranslationLeft + name.ToLower().TrimEnd('"').TrimStart('"') + SqlTranslationRight; return SqlTranslationLeft + name.ToLower(isAutoToLower).TrimEnd('"').TrimStart('"') + SqlTranslationRight;
} }
} }
} }

View File

@ -25,7 +25,14 @@ namespace SqlSugar
} }
public override string GetTranslationText(string name) public override string GetTranslationText(string name)
{ {
return SqlTranslationLeft + name.ToLower() + SqlTranslationRight; return SqlTranslationLeft + name.ToLower(isAutoToLower) + SqlTranslationRight;
}
public bool isAutoToLower
{
get
{
return base.PgSqlIsAutoToLower;
}
} }
public override string GetTranslationTableName(string entityName, bool isMapping = true) public override string GetTranslationTableName(string entityName, bool isMapping = true)
{ {
@ -46,7 +53,7 @@ namespace SqlSugar
else if (isMapping) else if (isMapping)
{ {
var mappingInfo = this.MappingTables.FirstOrDefault(it => it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase)); var mappingInfo = this.MappingTables.FirstOrDefault(it => it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase));
return SqlTranslationLeft + (mappingInfo == null ? entityName : mappingInfo.DbTableName).ToLower() + SqlTranslationRight; return SqlTranslationLeft + (mappingInfo == null ? entityName : mappingInfo.DbTableName).ToLower(isAutoToLower) + SqlTranslationRight;
} }
else if (isComplex) else if (isComplex)
{ {
@ -79,11 +86,11 @@ namespace SqlSugar
if (this.MappingColumns.HasValue()) if (this.MappingColumns.HasValue())
{ {
var mappingInfo = this.MappingColumns.SingleOrDefault(it => it.EntityName == entityName && it.PropertyName == propertyName); var mappingInfo = this.MappingColumns.SingleOrDefault(it => it.EntityName == entityName && it.PropertyName == propertyName);
return (mappingInfo == null ? propertyName : mappingInfo.DbColumnName).ToLower(); return (mappingInfo == null ? propertyName : mappingInfo.DbColumnName).ToLower(isAutoToLower);
} }
else else
{ {
return propertyName.ToLower(); return propertyName.ToLower(isAutoToLower);
} }
} }
} }

View File

@ -75,11 +75,11 @@ namespace SqlSugar
{ {
value = it.Value; value = it.Value;
} }
if (value == null) if (value == null||value==DBNull.Value)
{ {
return string.Format(SqlTemplateBatchSelect, "NULL"); return string.Format(SqlTemplateBatchSelect, "NULL");
} }
return string.Format(SqlTemplateBatchSelect, "'" + value + "'"); return string.Format(SqlTemplateBatchSelect, "'" + value.ObjToString().ToSqlFilter() + "'");
})) + "),"); })) + "),");
++i; ++i;
} }

View File

@ -37,5 +37,12 @@ namespace SqlSugar
} }
return value; return value;
} }
internal static string ToLower(this string value ,bool isAutoToLower)
{
if (value == null) return null;
if (isAutoToLower == false) return value;
return value.ToLower();
}
} }
} }