mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2026-02-27 16:50:33 +08:00
Code optimization
This commit is contained in:
@@ -21,27 +21,38 @@ namespace SqlSugar
|
||||
case ResolveExpressType.Update:
|
||||
case ResolveExpressType.SelectSingle:
|
||||
case ResolveExpressType.SelectMultiple:
|
||||
if (value != null && value.GetType().IsEnum())
|
||||
{
|
||||
value = Convert.ToInt64(value);
|
||||
}
|
||||
parameter.BaseParameter.CommonTempData = value;
|
||||
value = Select(parameter, value);
|
||||
break;
|
||||
case ResolveExpressType.WhereSingle:
|
||||
case ResolveExpressType.WhereMultiple:
|
||||
if (isSetTempData)
|
||||
{
|
||||
baseParameter.CommonTempData = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
AppendValue(parameter, isLeft, value);
|
||||
}
|
||||
Where(parameter, isLeft, value, baseParameter, isSetTempData);
|
||||
break;
|
||||
case ResolveExpressType.FieldSingle:
|
||||
case ResolveExpressType.FieldMultiple:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void Where(ExpressionParameter parameter, bool? isLeft, object value, ExpressionParameter baseParameter, bool isSetTempData)
|
||||
{
|
||||
if (isSetTempData)
|
||||
{
|
||||
baseParameter.CommonTempData = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
AppendValue(parameter, isLeft, value);
|
||||
}
|
||||
}
|
||||
|
||||
private static object Select(ExpressionParameter parameter, object value)
|
||||
{
|
||||
if (value != null && value.GetType().IsEnum())
|
||||
{
|
||||
value = Convert.ToInt64(value);
|
||||
}
|
||||
parameter.BaseParameter.CommonTempData = value;
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,19 +12,11 @@ namespace SqlSugar
|
||||
{
|
||||
var expression = base.Expression as MemberExpression;
|
||||
var isLeft = parameter.IsLeft;
|
||||
object value = null;
|
||||
var isField = expression.Member is System.Reflection.FieldInfo;
|
||||
var isProperty = expression.Member is System.Reflection.PropertyInfo;
|
||||
var baseParameter = parameter.BaseParameter;
|
||||
var isSetTempData = baseParameter.CommonTempData.HasValue() && baseParameter.CommonTempData.Equals(CommonTempDataType.Result);
|
||||
if (isField)
|
||||
{
|
||||
value = ExpressionTool.GetFiledValue(expression);
|
||||
}
|
||||
else if (isProperty)
|
||||
{
|
||||
value = ExpressionTool.GetPropertyValue(expression);
|
||||
}
|
||||
object value = GetValue(expression, isField, isProperty);
|
||||
switch (base.Context.ResolveType)
|
||||
{
|
||||
case ResolveExpressType.WhereSingle:
|
||||
@@ -32,15 +24,8 @@ namespace SqlSugar
|
||||
case ResolveExpressType.SelectSingle:
|
||||
case ResolveExpressType.SelectMultiple:
|
||||
case ResolveExpressType.Update:
|
||||
if (isSetTempData)
|
||||
{
|
||||
baseParameter.CommonTempData = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
AppendValue(parameter, isLeft, value);
|
||||
}
|
||||
break;
|
||||
Update(parameter, isLeft, baseParameter, isSetTempData, value);
|
||||
break;
|
||||
case ResolveExpressType.FieldSingle:
|
||||
break;
|
||||
case ResolveExpressType.FieldMultiple:
|
||||
@@ -49,6 +34,33 @@ namespace SqlSugar
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void Update(ExpressionParameter parameter, bool? isLeft, ExpressionParameter baseParameter, bool isSetTempData, object value)
|
||||
{
|
||||
if (isSetTempData)
|
||||
{
|
||||
baseParameter.CommonTempData = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
AppendValue(parameter, isLeft, value);
|
||||
}
|
||||
}
|
||||
|
||||
private static object GetValue(MemberExpression expression, bool isField, bool isProperty)
|
||||
{
|
||||
object value = null;
|
||||
if (isField)
|
||||
{
|
||||
value = ExpressionTool.GetFiledValue(expression);
|
||||
}
|
||||
else if (isProperty)
|
||||
{
|
||||
value = ExpressionTool.GetPropertyValue(expression);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user