From 81fceb8247e4be8cec86b7ffff57d5d7f7fbe827 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sun, 10 Jul 2022 14:20:20 +0800 Subject: [PATCH] Update .net core project --- .../QueryableProvider/NavigatManager.cs | 11 +++++++ .../QueryableProvider/QueryableProvider.cs | 6 ++-- .../ResolveItems/UnaryExpressionResolve.cs | 2 ++ .../MySql/SqlBuilder/MySqlInsertBuilder.cs | 32 +++++++++++++++---- .../MySql/SqlBuilder/MySqlUpdateBuilder.cs | 32 +++++++++++++++---- .../Realization/Oracle/OracleProvider.cs | 4 +++ 6 files changed, 73 insertions(+), 14 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs index a9da37e7e..e74d9fdb5 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs @@ -265,6 +265,17 @@ namespace SqlSugar } } } + else + { + foreach (var listItem in list) + { + if (navObjectNamePropety.GetValue(listItem) == null) + { + var newinstance = Activator.CreateInstance(navObjectNamePropety.PropertyType, true) as IList; + navObjectNamePropety.SetValue(listItem,newinstance); + } + } + } } private static void SkipTakeIList(SqlInfo sql, IList instanceCast, IList newinstance) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index be146509a..87926d15d 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1143,7 +1143,8 @@ namespace SqlSugar this.QueryBuilder.OrderByValue == null && this.QueryBuilder.PartitionByValue == null&& this.QueryBuilder.SelectValue==null&& - this.QueryBuilder.Includes == null) + this.QueryBuilder.Includes == null&& + this.QueryBuilder.IsDistinct==false) { return this.Clone().Select(" COUNT(1) ").ToList().First(); @@ -2154,7 +2155,8 @@ namespace SqlSugar this.QueryBuilder.OrderByValue == null && this.QueryBuilder.PartitionByValue == null && this.QueryBuilder.SelectValue == null && - this.QueryBuilder.Includes == null) + this.QueryBuilder.Includes == null&& + this.QueryBuilder.IsDistinct==false) { var list = await this.Clone().Select(" COUNT(1) ").ToListAsync(); return list.First(); diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs index 9b31e202c..521572b6c 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/UnaryExpressionResolve.cs @@ -121,6 +121,8 @@ namespace SqlSugar AppendNot(parameter.CommonTempData); base.Start(); parameter.BaseParameter.CommonTempData = parameter.CommonTempData; + if (nodeType == ExpressionType.Negate&& parameter.BaseParameter.CommonTempData is int) + parameter.BaseParameter.CommonTempData =Convert.ToInt32(parameter.BaseParameter.CommonTempData)*-1; parameter.BaseParameter.ChildExpression = base.Expression; parameter.CommonTempData = null; } diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs index 0522ff8bc..c22d04c5d 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs @@ -44,12 +44,11 @@ namespace SqlSugar var type = UtilMethods.GetUnderType(value.GetType()); if (type == UtilConstants.DateType) { - var date = value.ObjToDate(); - if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig)) - { - date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig); - } - return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; + return GetDateTimeString(value); + } + else if (value is DateTimeOffset) + { + return GetDateTimeOffsetString(value); } else if (type == UtilConstants.ByteArrayType) { @@ -84,6 +83,27 @@ namespace SqlSugar } } } + + private object GetDateTimeOffsetString(object value) + { + var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value); + if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig)) + { + date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig); + } + return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; + } + + private object GetDateTimeString(object value) + { + var date = value.ObjToDate(); + if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig)) + { + date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig); + } + return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; + } + private string GetString(object value) { var result = value.ToString(); diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs index 7a6857324..66841140d 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs @@ -106,12 +106,11 @@ namespace SqlSugar var type = UtilMethods.GetUnderType(value.GetType()); if (type == UtilConstants.DateType) { - var date = value.ObjToDate(); - if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig)) - { - date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig); - } - return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; + return GetDateTimeString(value); + } + else if (value is DateTimeOffset) + { + return GetDateTimeOffsetString(value); } else if (type == UtilConstants.ByteArrayType) { @@ -154,6 +153,27 @@ namespace SqlSugar } } } + + private object GetDateTimeString(object value) + { + var date = value.ObjToDate(); + if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig)) + { + date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig); + } + return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; + } + + private object GetDateTimeOffsetString(object value) + { + var date = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value); + if (date < UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig)) + { + date = UtilMethods.GetMinDate(this.Context.CurrentConnectionConfig); + } + return "'" + date.ToString("yyyy-MM-dd HH:mm:ss.fff") + "'"; + } + private string GetString(object value) { var result = value.ToString(); diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/OracleProvider.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/OracleProvider.cs index 91f2f27d8..65f77ef4b 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/OracleProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/OracleProvider.cs @@ -25,6 +25,10 @@ namespace SqlSugar { break; } + else if (item.Value != null &&Regex.IsMatch(item.Value.Trim(), @"^\w+\,\@\w+\,$")) + { + break; + } sql = sql.Replace(item.Value, item.Value.Replace("@", UtilConstants.ReplaceKey)); } }