C# 复合c1 Odata页面结果
我很难将Odata与PageResult结合使用。 如果我设置[QueryablePageSize=5],我会得到5个项目的正确结果 但是没有nextlink,这是我期望的,所以我可以得到第2页的下一个结果 复合C1使用它自己的XML数据存储,我认为这是问题的核心 我为ODataV3找到的所有示例都是使用 告诉我只需使用[QueryablePageSize=5],它就可以开箱即用。 但它们都使用实体框架,我不这么认为,我认为这就是它的缺陷所在 这是我的结果,没有nextlink:C# 复合c1 Odata页面结果,c#,odata,asp.net-web-api,c1-cms,C#,Odata,Asp.net Web Api,C1 Cms,我很难将Odata与PageResult结合使用。 如果我设置[QueryablePageSize=5],我会得到5个项目的正确结果 但是没有nextlink,这是我期望的,所以我可以得到第2页的下一个结果 复合C1使用它自己的XML数据存储,我认为这是问题的核心 我为ODataV3找到的所有示例都是使用 告诉我只需使用[QueryablePageSize=5],它就可以开箱即用。 但它们都使用实体框架,我不这么认为,我认为这就是它的缺陷所在 这是我的结果,没有nextlink: <Dat
<Data>
<ImageItem>
<Id>1eeb46e3-1446-45e8-bab2-03ccb637b2ab</Id>
<Title/>
<SubTitle/>
</ImageItem>
<ImageItem>
<Id>1eeb46e3-1446-45e8-bab2-03ccb637b2ab</Id>
<Title/>
<SubTitle/>
</ImageItem>
<ImageItem>
<Id>1eeb46e3-1446-45e8-bab2-03ccb637b2ab</Id>
<Title/>
<SubTitle/>
</ImageItem>
<ImageItem>
<Id>1eeb46e3-1446-45e8-bab2-03ccb637b2ab</Id>
<Title/>
<SubTitle/>
</ImageItem>
<ImageItem>
<Id>1eeb46e3-1446-45e8-bab2-03ccb637b2ab</Id>
<Title/>
<SubTitle/>
</ImageItem>
</Data>
Request.GetNextPageLink返回?$skip=5
变量filtered具有19个imageitems的列表。并进行过滤。计数也返回19
有人有什么建议甚至解决方案吗?
复合C1安装是一个简单的安装,没有额外的处理程序。
复合C1 4.2更新1,版本号4.2.5287.17495尝试删除[Queryable]属性,它会阻止正确呈现PageResult响应。感谢您的建议,但没有成功。我用我现在的代码更新了这个问题。我设置了20个硬编码,只是为了确保分页工作正常。
public class ImagesController : ApiController
{
public PageResult Get(ODataQueryOptions options)
{
using (var c = new DataConnection())
{
var querySettings = new ODataQuerySettings() { PageSize = 20 };
var filtered = options.ApplyTo(c.Get(), querySettings).Cast().ToList().AsQueryable();
return new PageResult(filtered, Request.GetNextPageLink(), 20);
}
}
}