Example #1
0
        protected internal override Expression VisitOrderBy(OrderByLinqExpression node)
        {
            var reducedSource = Visit(node.Source);

            Visit(node.KeySelector);

            SortDirection = node.SortDirection;

            return(node.Reduce(reducedSource));
        }
Example #2
0
 protected internal override Expression VisitOrderBy(OrderByLinqExpression node)
 {
     //Replace OrderBy1 -> OrderBy2 with a new instance of OrderBy2
     return(MergeLambda(
                node,
                n => n.KeySelector,
                (i, o) => o.Body,
                (s, l) => new OrderByLinqExpression(node.Method, s, l, node.Comparer, node.SortDirection)
                ));
 }
        protected internal override Expression VisitOrderBy(OrderByLinqExpression node)
        {
            var source = Visit(node.Source);

            if (source != node.Source)
            {
                return(new OrderByLinqExpression(node.Method, source, node.KeySelector, node.Comparer, node.SortDirection));
            }

            return(node);
        }
Example #4
0
        /// <summary>
        /// Visits the children of a <see cref="OrderByLinqExpression"/>.
        /// </summary>
        /// <param name="node">The expression to visit.</param>
        /// <returns>If any children were modified, a new <see cref="OrderByLinqExpression"/>. Otherwise, the original expression.</returns>
        protected internal virtual Expression VisitOrderBy(OrderByLinqExpression node)
        {
            var source      = Visit(node.Source);
            var keySelector = (LambdaExpression)Visit(node.KeySelector);
            var comparer    = Visit(node.Comparer);

            if (source != node.Source || keySelector != node.KeySelector || comparer != node.Comparer)
            {
                return(new OrderByLinqExpression(node.Method, source, keySelector, comparer, node.SortDirection));
            }

            return(node);
        }