public TBuilder FilterWith <TBaseRequest>(
            Func <TBaseRequest, IQueryable <TEntity>, IQueryable <TEntity> > filterFunc)
        {
            if (!typeof(TBaseRequest).IsAssignableFrom(typeof(TRequest)))
            {
                throw new ContravarianceException(nameof(FilterWith), typeof(TBaseRequest), typeof(TRequest));
            }

            return(AddRequestFilter(FunctionFilterFactory.From(filterFunc)));
        }
 internal TBuilder AddRequestFilter(Func <TRequest, IQueryable <TEntity>, IQueryable <TEntity> > filter)
 {
     return(AddRequestFilter(FunctionFilterFactory.From(filter)));
 }