/// <summary> /// Initializes a new instance of this class. /// </summary> /// <param name="provider">The provider.</param> /// <param name="pagingProvider">The paging provider.</param> public PagingProvider(CompilableProvider provider, PagingProvider pagingProvider) : base(ProviderType.Paging, provider) { Skip = pagingProvider.Skip; Take = pagingProvider.Take; From = pagingProvider.From; To = pagingProvider.To; Initialize(); }
/// <inheritdoc/> protected override Provider VisitPaging(PagingProvider provider) { OnRecursionEntrance(provider); var source = VisitCompilable(provider.Source); OnRecursionExit(provider); if (source == provider.Source) { return(provider); } return(new PagingProvider(source, provider)); }
/// <summary> /// Visits <see cref="PagingProvider"/>. /// </summary> /// <param name="provider">Paging provider.</param> protected abstract Provider VisitPaging(PagingProvider provider);