mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-12-05 03:17:41 +08:00
Code optimization
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user