示例#1
0
 protected internal override Expression VisitWhere(WhereLinqExpression node)
 {
     return(MergeLambda(
                node,
                n => n.Predicate,
                (i, o) => Expression.MakeBinary(ExpressionType.AndAlso, i.Body, o.Body),
                (s, l) => new WhereLinqExpression(node.Method, s, l)
                ));
 }
        protected internal override Expression VisitWhere(WhereLinqExpression node)
        {
            var source = Visit(node.Source);

            if (source != node.Source)
            {
                return(new WhereLinqExpression(node.Method, source, node.Predicate));
            }

            return(node);
        }
示例#3
0
        /// <summary>
        /// Visits the children of a <see cref="WhereLinqExpression"/>.
        /// </summary>
        /// <param name="node">The expression to visit.</param>
        /// <returns>If any children were modified, a new <see cref="WhereLinqExpression"/>. Otherwise, the original expression.</returns>
        protected internal virtual Expression VisitWhere(WhereLinqExpression node)
        {
            var source    = Visit(node.Source);
            var predicate = (LambdaExpression)VisitPredicate(node.Predicate);

            if (source != node.Source || predicate != node.Predicate)
            {
                return(new WhereLinqExpression(node.Method, source, predicate));
            }

            return(node);
        }
示例#4
0
 protected internal override Expression VisitWhere(WhereLinqExpression node) => VisitCondition(node);