可以在不获取它们的情况下找到 odata 总记录吗?

Ste*_*eve 7 odata

我正在创建分页并每页获取 10 条 JSON 记录:

  var coursemodel = query.Skip(skip).Take(take).ToList();
Run Code Online (Sandbox Code Playgroud)

我需要在网页上显示数据库中可用的记录总数。例如,您正在查看 20 到 30 个 x(其中 x 是记录总数)。可以在不通过网络传输记录的情况下找到 x 吗?

Ste*_*eve 7

排序了。做过这个

http://yourserver7:40479/odata/Courses?$top=1&skip=1&$inlinecount=allpages

明白啦

 {
  "odata.metadata":"http://yourserver7:40479/odata/$metadata#Courses","odata.count":"503","value":[
    {
      "CourseID":20,"Name":"Name 20","Description":"Description 20","Guid":"Guid 20"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

然后我从 odata.count 得到了值!我的 url 获取找到的所有记录,在适用的情况下添加 $filter...

  • OData 4.0 不支持查询参数“$inlinecount”。您的回答与 OData 的早期版本有关。 (4认同)

Nun*_*res 6

您可以使用$count运算符返回记录总数,大致如下:

http://services.odata.org/OData/OData.svc/Categories(1)/Products/$count
Run Code Online (Sandbox Code Playgroud)

不确定 Linq 的语法是什么,但很确定这是可能的。

PS - 始终是一个很好的参考:http://www.odata.org/documentation/odata-version-2-0/uri-conventions/