From 6153ccb558cf2150b77102810d98eddecae9d52b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 26 Nov 2022 14:39:14 +0800 Subject: [PATCH] Code optimization --- .../ResolveItems/NewExpressionResolve.cs | 90 ++++++++++--------- 1 file changed, 50 insertions(+), 40 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/NewExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/NewExpressionResolve.cs index c5a3977cb..6f8f2db06 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/NewExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/NewExpressionResolve.cs @@ -40,54 +40,64 @@ namespace SqlSugar case ResolveExpressType.FieldMultiple: case ResolveExpressType.ArrayMultiple: case ResolveExpressType.ArraySingle: - foreach (var item in expression.Arguments) - { - if (IsDateValue(item)) - { - var value = GetNewExpressionValue(item); - base.Context.Result.Append(value); - } - else - { - base.Expression = item; - base.Start(); - } - } + ArraySingle(expression); break; case ResolveExpressType.Join: - base.Context.ResolveType = ResolveExpressType.WhereMultiple; - int i = 0; - foreach (var item in expression.Arguments) - { - if (item.Type!=typeof(JoinType)) - { - base.Expression = item; - base.Start(); - } - if (item.Type == typeof(JoinType)) - { - var joinValue = item.ObjToString(); - if (joinValue.Contains("(")) - { - joinValue = ExpressionTool.DynamicInvoke(item).ObjToString(); - } - if (i > 0) - { - base.Context.Result.Append("," + joinValue + ","); - } - else - { - base.Context.Result.Append(joinValue + ","); - } - ++i; - } - } + Join(expression); break; default: break; } } + private void Join(NewExpression expression) + { + base.Context.ResolveType = ResolveExpressType.WhereMultiple; + int i = 0; + foreach (var item in expression.Arguments) + { + if (item.Type != typeof(JoinType)) + { + base.Expression = item; + base.Start(); + } + if (item.Type == typeof(JoinType)) + { + var joinValue = item.ObjToString(); + if (joinValue.Contains("(")) + { + joinValue = ExpressionTool.DynamicInvoke(item).ObjToString(); + } + if (i > 0) + { + base.Context.Result.Append("," + joinValue + ","); + } + else + { + base.Context.Result.Append(joinValue + ","); + } + ++i; + } + } + } + + private void ArraySingle(NewExpression expression) + { + foreach (var item in expression.Arguments) + { + if (IsDateValue(item)) + { + var value = GetNewExpressionValue(item); + base.Context.Result.Append(value); + } + else + { + base.Expression = item; + base.Start(); + } + } + } + private bool IsDateValue(Expression item) { var isMember = item is MemberExpression;