This commit is contained in:
sunkaixuan
2017-01-31 20:26:38 +08:00
parent 820bea17b9
commit d231b0d08c
3 changed files with 22 additions and 10 deletions

View File

@@ -40,9 +40,9 @@ namespace OrmTest.ExpressionTest
expContext.Resolve();
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
base.Check(value, pars, "( @Const0 = (UPPER(Id)) )", new List<SugarParameter>() {
new SugarParameter("@Const0","a")
}, "ToUpper");
base.Check(value, pars, "((rtrim(ltrim(@MethodConst0))) = Name )", new List<SugarParameter>() {
new SugarParameter("@MethodConst0"," a")
}, "Trim");
}
private void ToUpper()

View File

@@ -103,7 +103,20 @@ namespace SqlSugar
if (parameter.BaseExpression is BinaryExpression)
{
var otherExpression = isLeft == true ? parameter.BaseParameter.RightExpression : parameter.BaseParameter.LeftExpression;
if (otherExpression is MemberExpression)
if (parameter.Expression is MethodCallExpression)
{
var appendValue = value;
if (this.Context.Result.Contains(ExpressionConst.Format0))
{
this.Context.Result.Replace(ExpressionConst.Format0, appendValue.ObjToString());
}
else
{
this.Context.Result.Append(appendValue);
}
this.AppendOpreator(parameter, isLeft);
}
else if (otherExpression is MemberExpression)
{
string appendValue = Context.SqlParameterKeyWord
+ ((MemberExpression)otherExpression).Member.Name
@@ -124,11 +137,11 @@ namespace SqlSugar
this.Context.Result.Append(appendValue);
}
}
else
else
{
var appendValue =this.Context.SqlParameterKeyWord+ExpressionConst.CONST +Context.ParameterIndex;
var appendValue = this.Context.SqlParameterKeyWord + ExpressionConst.CONST + Context.ParameterIndex;
Context.ParameterIndex++;
this.Context.Parameters.Add(new SugarParameter(appendValue,value));
this.Context.Parameters.Add(new SugarParameter(appendValue, value));
appendValue = string.Format(" {0} ", appendValue);
if (isLeft == true)
{
@@ -145,7 +158,7 @@ namespace SqlSugar
}
}
}
protected void ActionLeft(ExpressionParameter parameter, bool? isLeft)
protected void AppendOpreator(ExpressionParameter parameter, bool? isLeft)
{
if (isLeft == true)
{

View File

@@ -51,8 +51,7 @@ namespace SqlSugar
model.Args.Add(methodCallExpressionArgs);
}
var methodValue = GetMdthodValue(name, model);
base.Context.Result.Append(methodValue);
base.ActionLeft(parameter, isLeft);
base.AppendValue(parameter,isLeft, methodValue);
break;
case ResolveExpressType.SelectSingle:
case ResolveExpressType.SelectMultiple: