odata total记录是否可以在不获取它们的情况下找到?

odata total记录是否可以在不获取它们的情况下找到?,odata,Odata,我正在创建分页并获取每页10条JSON记录: var coursemodel = query.Skip(skip).Take(take).ToList(); 我需要在网页上显示数据库中可用记录的总数。例如,您正在查看20到30条x(其中x是记录的总数)。在不通过网络传输记录的情况下是否可以找到x?您可以使用$count操作符返回记录总数,大致如下: http://services.odata.org/OData/OData.svc/Categories(1)/Products/$count

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

  var coursemodel = query.Skip(skip).Take(take).ToList();

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

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

http://services.odata.org/OData/OData.svc/Categories(1)/Products/$count
不确定Linq的语法是什么,但非常确定这是可能的

PS-始终是一个很好的参考资料:

请尝试以下内容:

context.EFCars.Where(c => c.Description == desc).Count();
其中EFCars是一个实体集名称。

对其进行排序。这样做

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"
    }
  ]
}


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

谢谢您的回复。看起来在dbase表中查找总记录的唯一方法是使用web.api count端点这在元数据中提供了计数值,但我不知道如何在c中访问它#您是否通过服务引用调用它?我不确定必须在c#中访问它是什么意思。是的,我正在从c#mvc应用程序调用一个c#web服务(odata)。我想实现手动分页(而不是pagedlist…),并使用skip and take。当我通过网络获取每组json记录时,分页信息需要显示可用记录的总数。对每个记录进行计数只显示该组记录的总数(例如,如果记录数为10,则总数为10!!)。我需要知道odata查询找到的记录总数…我需要向用户显示这样的内容“查看20-30条记录,共100条记录”。您如何找到总数,例如100?这是我需要的:它提供可用的总记录数(不是当前提取的总记录数)。我正在使用所有最新版本的软件(如Visual Studio 2013)。有人知道strathweb站点上的信息是否可以通过更高版本的软件更容易地实现吗?(例如web.api 2.1等)OData 4.0不支持查询参数
$inlinecount
。您的答案与OData的早期版本有关。