我必须为使用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(即我不想使用上面的设置)并从我的解决方案的web.config获取页面大小而不修改web api提供的URL,即没有客户端大小寻呼。
所以,到目前为止,我还没有办法做到这一点。我无法将页面大小放在[启用查询]中,因为这不是从web.config动态提升页面大小参数。
我想知道我想要做什么,或者我想做一些太棘手的事情。
答案 0 :(得分:2)
您可以扩展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;
}
}
}