Example #1
0
        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()));
        }
    }
Example #2
0
 public void Process(GroupResultOperator resultOperator, QueryModelVisitor queryModelVisitor, IntermediateHqlTree tree)
 {
     tree.AddGroupByClause(tree.TreeBuilder.GroupBy(
                               HqlGeneratorExpressionTreeVisitor.Visit(resultOperator.KeySelector, queryModelVisitor.VisitorParameters)
                               .AsExpression()));
 }