我正在尝试为 sql 数据库中的表值函数构建 OData 端点。我必须启用分页,以便从 web.config 文件中获取页面大小值。
我想我必须扩展 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 但查询根本不起作用:$top,$select,没有一个起作用,
我猜这个 EnablePagedQuery 扩展有问题,因为使用 EnableQuery 一切都正常。
另外,我如何检查页面大小是否确实发生了变化?
$select 查询将不起作用,因为当您在控制器中使用 ODataQueryOptions 的方法(以选择查询中的选项)时,您不能使用 select,因为 它不支持 select。因此,您一定不要尝试在查询中编写 $select。
此外,要检查页面大小是否已更改,一个简单的选择是将其设置为较小的值(例如 1,2),然后检查您的查询响应是否确实发生了变化。