From b8439a5bd31db04c8d2a04a176934d6cb3b63841 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sun, 15 May 2022 11:43:02 +0800 Subject: [PATCH] Update exp to sql --- .../ExpressionsToSql/ResolveItems/BaseResolve.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve.cs index b9a49d0ff..7d53c8393 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BaseResolve.cs @@ -515,6 +515,11 @@ namespace SqlSugar }); parameter.Context.Result.Append(this.Context.GetAsString(asName, sql)); } + else if (item.NodeType == ExpressionType.Not && (item as UnaryExpression).Operand is MethodCallExpression) + { + var asValue = packIfElse(GetNewExpressionValue(item)).ObjToString(); + parameter.Context.Result.Append(this.Context.GetAsString(asName, asValue)); + } else if (item is MethodCallExpression || item is UnaryExpression || item is ConditionalExpression || item.NodeType == ExpressionType.Coalesce) { this.Expression = item; @@ -526,7 +531,15 @@ namespace SqlSugar Check.ThrowNotSupportedException(item.GetType().Name); } } - + public object packIfElse(object methodValue) + { + methodValue = this.Context.DbMehtods.CaseWhen(new List>() { + new KeyValuePair("IF",methodValue.ObjToString()), + new KeyValuePair("Return","1"), + new KeyValuePair("End","0") + }); + return methodValue; + } private static bool IsNotCaseExpression(Expression item) { if ((item as MethodCallExpression).Method.Name == "IIF")