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); }
/// <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); }
protected internal override Expression VisitWhere(WhereLinqExpression node) => VisitCondition(node);