.NET Web API 中的分页
本文关键字:分页 API Web NET | 更新日期: 2023-09-27 17:57:15
我必须为使用实体框架构建的 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,即没有客户端大小分页。
所以,到目前为止,我还没有找到一种方法来做到这一点。我无法将页面大小放入 [ 启用查询 ],因为这不会从 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;
}
}
}