mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2026-01-21 18:48:27 +08:00
Update exp to sql
This commit is contained in:
@@ -279,7 +279,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
AppendModel(parameter, model, item,name);
|
AppendModel(parameter, model, item,name, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -334,7 +334,7 @@ namespace SqlSugar
|
|||||||
Check.Exception(true, "The SqlFunc.IIF(arg1,arg2,arg3) , {0} argument do not support ", item.ToString());
|
Check.Exception(true, "The SqlFunc.IIF(arg1,arg2,arg3) , {0} argument do not support ", item.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void AppendModel(ExpressionParameter parameter, MethodCallExpressionModel model, Expression item,string name)
|
private void AppendModel(ExpressionParameter parameter, MethodCallExpressionModel model, Expression item,string name, IEnumerable<Expression> args)
|
||||||
{
|
{
|
||||||
parameter.CommonTempData = CommonTempDataType.Result;
|
parameter.CommonTempData = CommonTempDataType.Result;
|
||||||
base.Expression = item;
|
base.Expression = item;
|
||||||
@@ -408,10 +408,19 @@ namespace SqlSugar
|
|||||||
var parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.MethodConst + this.Context.ParameterIndex;
|
var parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.MethodConst + this.Context.ParameterIndex;
|
||||||
this.Context.ParameterIndex++;
|
this.Context.ParameterIndex++;
|
||||||
methodCallExpressionArgs.MemberName = parameterName;
|
methodCallExpressionArgs.MemberName = parameterName;
|
||||||
if (name == "ToString"&&UtilMethods.GetUnderType(base.Expression.Type).IsEnum())
|
if (name == "ToString"&&UtilMethods.GetUnderType(base.Expression.Type).IsEnum())
|
||||||
{
|
{
|
||||||
value = value?.ToString();
|
value = value?.ToString();
|
||||||
}
|
}
|
||||||
|
else if (name == "ContainsArray"&&args.Count()==2&& value!= null && value is IList)
|
||||||
|
{
|
||||||
|
List<object> result = new List<object>();
|
||||||
|
foreach (var memItem in (value as IList))
|
||||||
|
{
|
||||||
|
result.Add(GetMemberValue(memItem, args.Last()));
|
||||||
|
}
|
||||||
|
value = result;
|
||||||
|
}
|
||||||
methodCallExpressionArgs.MemberValue = value;
|
methodCallExpressionArgs.MemberValue = value;
|
||||||
this.Context.Parameters.Add(new SugarParameter(parameterName, value));
|
this.Context.Parameters.Add(new SugarParameter(parameterName, value));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user