/// <inheritdoc/> protected override Provider VisitPredicateJoin(PredicateJoinProvider provider) { OnRecursionEntrance(provider); var left = VisitCompilable(provider.Left); var right = VisitCompilable(provider.Right); var predicate = (Expression <Func <Tuple, Tuple, bool> >)OnRecursionExit(provider); if (left == provider.Left && right == provider.Right) { return(provider); } return(new PredicateJoinProvider(left, right, predicate ?? provider.Predicate, provider.JoinType)); }
/// <summary> /// Visits <see cref="PredicateJoinProvider"/>. /// </summary> /// <param name="provider">Predicate join provider.</param> protected abstract Provider VisitPredicateJoin(PredicateJoinProvider provider);