2015-06-22 59 views
0

我正在尝试为sql数据库中的表值函数构建OData端点。我必须启用分页,以便从web.config文件中获取页面大小值。在.NET Web API中使用分页查询属性

我想我必须扩展EnableQuery属性要做到这一点,如:

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; 
     } 
    } 
} 

我用上面的类在我的控制器和替代EnableQuery,我用EnablePagedQuery在控制器的方法,但在查询不工作在所有:$顶部,$ select,没有工作,

我想有这个EnablePagedQuery扩展有什么问题,因为使用EnableQuery都工作。

另外,我怎么能检查页面大小是否确实改变了

回答

0

$ select查询不起作用,因为当您在控制器中使用ODataQueryOptions中的方法(选择查询中的选项)时,无法使用select作为it does not support select。所以,你不能在你的查询中尝试编写$ select。

此外,要检查页面大小是否已更改,一个简单的选项是将其设置为1,2这样的小值,并检查您的查询响应是否确实发生了更改。