public void Process(GroupResultOperator resultOperator, QueryModelVisitor queryModelVisitor, IntermediateHqlTree tree) { IEnumerable <Expression> groupByKeys; if (resultOperator.KeySelector is NewExpression) { groupByKeys = (resultOperator.KeySelector as NewExpression).Arguments; } else { groupByKeys = new[] { resultOperator.KeySelector } }; IEnumerable <HqlExpression> hqlGroupByKeys = groupByKeys.Select(k => HqlGeneratorExpressionTreeVisitor.Visit(k, queryModelVisitor.VisitorParameters).AsExpression()); tree.AddGroupByClause(tree.TreeBuilder.GroupBy(hqlGroupByKeys.ToArray())); } }
public void Process(GroupResultOperator resultOperator, QueryModelVisitor queryModelVisitor, IntermediateHqlTree tree) { tree.AddGroupByClause(tree.TreeBuilder.GroupBy( HqlGeneratorExpressionTreeVisitor.Visit(resultOperator.KeySelector, queryModelVisitor.VisitorParameters) .AsExpression())); }