.NET Web 中的分页 API
Paging in .NET Web API
我必须为使用 Entity Framework 构建的 odata 端点进行分页。我知道我可以使用
private ODataQuerySettings settings = new ODataQuerySettings();
settings.PageSize = myPageSize; // I keep this value in web.config of solution
and
options.ApplyTo(IQueryable, settings);
但我不能使用 ApplyTo(即我不想使用上面的设置)并在不修改 url 的情况下从我的解决方案的 web.config 中获取页面大小通过网络 api 即没有客户端大小分页。
所以,到目前为止我还没有找到一种方法来做到这一点。我无法将页面大小放入 [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;
}
}
}
我必须为使用 Entity Framework 构建的 odata 端点进行分页。我知道我可以使用
private ODataQuerySettings settings = new ODataQuerySettings();
settings.PageSize = myPageSize; // I keep this value in web.config of solution
and
options.ApplyTo(IQueryable, settings);
但我不能使用 ApplyTo(即我不想使用上面的设置)并在不修改 url 的情况下从我的解决方案的 web.config 中获取页面大小通过网络 api 即没有客户端大小分页。
所以,到目前为止我还没有找到一种方法来做到这一点。我无法将页面大小放入 [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;
}
}
}