This commit is contained in:
sunkaixuan 2017-08-14 01:01:23 +08:00
parent 9dac12aba4
commit 2d43491673
2 changed files with 22 additions and 0 deletions

View File

@ -23,6 +23,7 @@ namespace OrmTest.UnitTest
{
FieldSingle();
FieldMultiple();
FieldMultiple2();
}
base.End("Filed Test");
}
@ -43,6 +44,14 @@ namespace OrmTest.UnitTest
Check(selectorValue, null, expContext.GetTranslationColumnName("it.Name"), null, "FieldMultiple error");
}
private void FieldMultiple2()
{
Expression<Func<Student, object>> exp = it =>SqlFunc.AggregateAvg(it.Id);
ExpressionContext expContext = GetContext();
expContext.Resolve(exp, ResolveExpressType.FieldMultiple);
var selectorValue = expContext.Result.GetString();
Check(selectorValue, null, "AVG([it].[Id])", null, "FieldMultiple error");
}
public ExpressionContext GetContext()
{
return new SqlServerExpressionContext();//可以更换

View File

@ -77,6 +77,8 @@ namespace SqlSugar
break;
case ResolveExpressType.FieldSingle:
case ResolveExpressType.FieldMultiple:
Field(parameter, isLeft, name, args, model);
break;
default:
break;
}
@ -109,6 +111,17 @@ namespace SqlSugar
}
}
private void Field(ExpressionParameter parameter, bool? isLeft, string name, IEnumerable<Expression> args, MethodCallExpressionModel model, List<MethodCallExpressionArgs> appendArgs = null)
{
if (this.Context.ResolveType == ResolveExpressType.FieldSingle)
{
this.Context.ResolveType = ResolveExpressType.WhereSingle;
}
else {
this.Context.ResolveType = ResolveExpressType.WhereMultiple;
}
Where(parameter, isLeft, name, args, model);
}
private void Select(ExpressionParameter parameter, bool? isLeft, string name, IEnumerable<Expression> args, MethodCallExpressionModel model, List<MethodCallExpressionArgs> appendArgs = null)
{
if (name == "GetSelfAndAutoFill")