From a3f09ed5ee214775ec7817bf02e7885c6247b429 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 8 Apr 2022 21:09:34 +0800 Subject: [PATCH] Update exp to sql --- Src/Asp.Net/SqlServerTest/UnitTest/UCustom09.cs | 5 +++++ .../ResolveItems/MethodCallExpressionResolve.cs | 13 +++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UCustom09.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UCustom09.cs index 93626bec3..fcb9603ad 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/UCustom09.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UCustom09.cs @@ -29,6 +29,11 @@ namespace OrmTest }).ToList(); db.Queryable().LeftJoin((t,y)=>t.Id==y.Id).Where(t=>1==1).Select(t=>t).ToParentList(it => it.ParentId, "0"); + db.Queryable() .Select((a) => new + { + ID = a.Id, + 真实名称 = !string.IsNullOrEmpty(a.Name) ? a.Name : a.Name + }).ToList(); } public class Unitadfaint21 diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index e62d73238..1b623c10a 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -547,7 +547,11 @@ namespace SqlSugar { parameter.CommonTempData = DateTime.Now.Date; } - else if (item is ConditionalExpression) + else if (item is ConditionalExpression) + { + parameter.CommonTempData = GetNewExpressionValue(item); + } + else if (IsNot(item)) { parameter.CommonTempData = GetNewExpressionValue(item); } @@ -589,7 +593,7 @@ namespace SqlSugar methodCallExpressionArgs.IsMember = false; } } - if (IsDateDate(item) || IsDateValue(item)|| IsDateItemValue(item)||item is ConditionalExpression) + if (IsDateDate(item) || IsDateValue(item) || IsDateItemValue(item) || item is ConditionalExpression||IsNot(item)) { methodCallExpressionArgs.IsMember = true; } @@ -612,6 +616,11 @@ namespace SqlSugar parameter.ChildExpression = null; } + private static bool IsNot(Expression item) + { + return item is UnaryExpression && (item as UnaryExpression).NodeType == ExpressionType.Not; + } + private bool IsDateItemValue(Expression item) { var result = false;