如何只获得没有价值的Odata.Count

时间:2015-05-08 11:48:16

标签: asp.net-web-api odata asp.net-web-api-odata

有没有什么方法可以只计算响应有效负载中的数据而没有任何值数组?

我正在使用带有Webapi 2.2的ODataV4.0。 目前,当我查询以下内容时,它会返回所有值和计数: http://odata/People?$count=true

我只需要"@odata.count":1, "value":[]"value"之类的内容。

这是完成这项工作的唯一方法吗?

2 个答案:

答案 0 :(得分:18)

将$ top设置为零,将$ count设置为true。

例如: http://services.odata.org/V4/Northwind/Northwind.svc/Customers?$count=true&$top=0

返回计数但没有结果

{ “@ odata.context”: “http://services.odata.org/V4/Northwind/Northwind.svc/ $元数据#顾客”, “@ odata.count”:91, “值”:[]}

计算是在应用$ filter后计算的,但不考虑$ top和$ skip。

例如:http://services.odata.org/V4/Northwind/Northwind.svc/Customers?$count=true&$top=0&$filter=Country%20eq%20%27Germany%27

通知您有11个国家/地区为“德国”的结果,但未在回复中返回任何记录。

答案 1 :(得分:2)

您还可以附加$ count作为路径元素,以获取原始计数,例如。

https://services.odata.org/V4/Northwind/Northwind.svc/Customers/ $ count

这也适用于已应用的过滤器等: https://services.odata.org/V4/Northwind/Northwind.svc/Customers/ $ count?$ filter = Country%20eq%20%27Germany%27

针对德国的客户。