C# .NETWebAPI中的分页

C# .NETWebAPI中的分页,c#,.net,asp.net-web-api,odata,paging,C#,.net,Asp.net Web Api,Odata,Paging,我必须对使用实体框架构建的odata端点进行分页。我知道我可以用电脑来做 private ODataQuerySettings settings = new ODataQuerySettings(); settings.PageSize = myPageSize; // I keep this value in web.config of solution and options.ApplyTo(IQueryable, settings); 但是我被限制不使用ApplyTo(即,我不想使用上述

我必须对使用实体框架构建的odata端点进行分页。我知道我可以用电脑来做

private ODataQuerySettings settings = new ODataQuerySettings();
settings.PageSize = myPageSize; // I keep this value in web.config of solution
and
options.ApplyTo(IQueryable, settings);
但是我被限制不使用ApplyTo(即,我不想使用上述设置)并从解决方案的web.config获取页面大小,而不修改web api提供的url,即不使用客户端大小分页

到目前为止,我还没有找到这样做的方法。我无法将页面大小放入[Enable Query],因为这不是从web.config动态提升页面大小参数


我想知道我想要的是什么,还是我正在尝试做一些太棘手的事情。

您可以扩展EnableQuery属性的默认行为,以便根据需要使用web.config的值。也许是这样的:

public class EnablePagedQueryAttribute : EnableQueryAttribute
{
    public EnablePagedQueryAttribute()
    {
        int myPageSizeFromWebConfig = 0;

        // Get value from web.config as you want:
        if (int.TryParse(ConfigurationManager.AppSettings["myPageSize"], out myPageSizeFromWebConfig))
        {
            this.PageSize = myPageSizeFromWebConfig;
        }
    }
}