mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 18:22:23 +08:00
-
This commit is contained in:
@@ -23,6 +23,7 @@ namespace OrmTest.UnitTest
|
|||||||
{
|
{
|
||||||
FieldSingle();
|
FieldSingle();
|
||||||
FieldMultiple();
|
FieldMultiple();
|
||||||
|
FieldMultiple2();
|
||||||
}
|
}
|
||||||
base.End("Filed Test");
|
base.End("Filed Test");
|
||||||
}
|
}
|
||||||
@@ -43,6 +44,14 @@ namespace OrmTest.UnitTest
|
|||||||
Check(selectorValue, null, expContext.GetTranslationColumnName("it.Name"), null, "FieldMultiple error");
|
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()
|
public ExpressionContext GetContext()
|
||||||
{
|
{
|
||||||
return new SqlServerExpressionContext();//可以更换
|
return new SqlServerExpressionContext();//可以更换
|
||||||
|
@@ -77,6 +77,8 @@ namespace SqlSugar
|
|||||||
break;
|
break;
|
||||||
case ResolveExpressType.FieldSingle:
|
case ResolveExpressType.FieldSingle:
|
||||||
case ResolveExpressType.FieldMultiple:
|
case ResolveExpressType.FieldMultiple:
|
||||||
|
Field(parameter, isLeft, name, args, model);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
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)
|
private void Select(ExpressionParameter parameter, bool? isLeft, string name, IEnumerable<Expression> args, MethodCallExpressionModel model, List<MethodCallExpressionArgs> appendArgs = null)
|
||||||
{
|
{
|
||||||
if (name == "GetSelfAndAutoFill")
|
if (name == "GetSelfAndAutoFill")
|
||||||
|
Reference in New Issue
Block a user