From 44c901b45b7d318117b4493cf777337f86dbd5bd Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 21 May 2022 12:23:53 +0800 Subject: [PATCH] Update Core --- .../QueryableProvider/QueryableProvider.cs | 30 ++++++++++++++++++- .../SqlSugar/Interface/IQueryable.cs | 1 + 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 696bfbee2..744347031 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1932,7 +1932,35 @@ namespace SqlSugar totalPage = (totalNumber + pageSize - 1) / pageSize; return result; } - + public virtual string ToSqlString() + { + var sqlObj = this.Clone().ToSql(); + var result = sqlObj.Key; + if (result == null) return null; + if (sqlObj.Value != null) + { + foreach (var item in sqlObj.Value.OrderByDescending(it=>it.ParameterName.Length)) + { + if (item.Value == null || item.Value == DBNull.Value) + { + result = result.Replace(item.ParameterName, "null"); + } + else if (UtilMethods.IsNumber(item.Value.GetType().Name)) + { + result = result.Replace(item.ParameterName, item.Value.ObjToString()); + } + else if(this.Context.CurrentConnectionConfig.MoreSettings?.DisableNvarchar==true||item.DbType==System.Data.DbType.AnsiString||this.Context.CurrentConnectionConfig.DbType==DbType.Sqlite) + { + result = result.Replace(item.ParameterName, $"'{item.Value.ObjToString()}'"); + } + else + { + result = result.Replace(item.ParameterName, $"N'{item.Value.ObjToString()}'"); + } + } + } + return result; + } public virtual KeyValuePair> ToSql() { if (!QueryBuilder.IsClone) diff --git a/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs b/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs index bd9ea9004..dd9e38028 100644 --- a/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs +++ b/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs @@ -159,6 +159,7 @@ namespace SqlSugar string ToJsonPage(int pageIndex, int pageSize, ref int totalNumber); Task ToJsonPageAsync(int pageIndex, int pageSize, RefAsync totalNumber); KeyValuePair> ToSql(); + string ToSqlString(); List ToChildList(Expression> parentIdExpression, object primaryKeyValue); Task> ToChildListAsync(Expression> parentIdExpression, object primaryKeyValue); List ToParentList(Expression> parentIdExpression, object primaryKeyValue);