Code optimization

This commit is contained in:
sunkaixuan
2022-11-26 14:39:14 +08:00
parent af41e54f95
commit 6153ccb558

View File

@@ -40,54 +40,64 @@ namespace SqlSugar
case ResolveExpressType.FieldMultiple: case ResolveExpressType.FieldMultiple:
case ResolveExpressType.ArrayMultiple: case ResolveExpressType.ArrayMultiple:
case ResolveExpressType.ArraySingle: case ResolveExpressType.ArraySingle:
foreach (var item in expression.Arguments) ArraySingle(expression);
{
if (IsDateValue(item))
{
var value = GetNewExpressionValue(item);
base.Context.Result.Append(value);
}
else
{
base.Expression = item;
base.Start();
}
}
break; break;
case ResolveExpressType.Join: case ResolveExpressType.Join:
base.Context.ResolveType = ResolveExpressType.WhereMultiple; Join(expression);
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;
}
}
break; break;
default: default:
break; 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) private bool IsDateValue(Expression item)
{ {
var isMember = item is MemberExpression; var isMember = item is MemberExpression;