From 2dd4dc1f9781edb1e04d20f376cffe27ec80fc4b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 12 Apr 2022 16:38:59 +0800 Subject: [PATCH] Update exp to sql --- .../QueryableProvider/QueryableProvider.cs | 20 +++++++++++++++++-- .../MethodCallExpressionResolve.cs | 8 ++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 9ca94b2ca..d9eb4ed7d 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1360,7 +1360,15 @@ namespace SqlSugar var entity = this.Context.EntityMaintenance.GetEntityInfo(); var queryableContext = this.Context.TempItems["Queryable_To_Context"] as MapperContext; var list = queryableContext.list; - var pkName = (((mappingFiled as LambdaExpression).Body as UnaryExpression).Operand as MemberExpression).Member.Name; + var pkName = ""; + if ((mappingFiled as LambdaExpression).Body is UnaryExpression) + { + pkName = (((mappingFiled as LambdaExpression).Body as UnaryExpression).Operand as MemberExpression).Member.Name; + } + else + { + pkName = ((mappingFiled as LambdaExpression).Body as MemberExpression).Member.Name; + } var key = thisFiled.ToString() + typeof(ParameterT).FullName + typeof(T).FullName; var ids = list.Select(it => it.GetType().GetProperty(pkName).GetValue(it)).ToArray(); if (queryableContext.TempChildLists == null) @@ -1379,7 +1387,15 @@ namespace SqlSugar }); queryableContext.TempChildLists[key] = result; } - var name = (((thisFiled as LambdaExpression).Body as UnaryExpression).Operand as MemberExpression).Member.Name; + var name = ""; + if ((thisFiled as LambdaExpression).Body is UnaryExpression) + { + name = (((thisFiled as LambdaExpression).Body as UnaryExpression).Operand as MemberExpression).Member.Name; + } + else + { + name = ((thisFiled as LambdaExpression).Body as MemberExpression).Member.Name; + } var pkValue = parameter.GetType().GetProperty(pkName).GetValue(parameter); result = result.Where(it => it.GetType().GetProperty(name).GetValue(it).ObjToString() == pkValue.ObjToString()).ToList(); return result; diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index 52763c958..1b83da685 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -1056,6 +1056,14 @@ namespace SqlSugar { return $"CONVERT(varchar(100),convert(datetime,{value}), 120)"; } + else if (formatString == "yyyy-MM-dd HH:mm" && IsSqlServer()) + { + return $"CONVERT(varchar(16),convert(datetime,{value}), 120)"; + } + else if (formatString == "yyyy-MM-dd hh:mm" && IsSqlServer()) + { + return $"CONVERT(varchar(16),convert(datetime,{value}), 120)"; + } else if (formatString == "yyyy-MM-dd hh:mm:ss.ms" && IsSqlServer()) { return $"CONVERT(varchar(100),convert(datetime,{value}), 121)";