web-dev-qa-db-ja.com

値なしでOdata.Countのみを取得する方法

値の配列なしで応答ペイロードのデータのカウントのみを取得できる方法はありますか?

Webapi2.2でODataV4.0を使用しています。現在、次のようなクエリを実行すると、すべての値とカウントが返されます。http://odata/People?$count=true

"@odata.count":1, "value":[]のようなものまたは"value"のないものが必要です。

この仕事のための機能を持つ唯一の方法はありますか?

11
ManojAnavatti

$ topをゼロに設定し、$ countをtrueに設定します。

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

カウントを返しますが、結果は返しません

{"@ odata.context": " http://services.odata.org/V4/Northwind/Northwind.svc/ $ metadata#Customers"、 "@ 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の結果があることを通知します。

24

$ 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% 27ドイツ%27

ドイツの顧客の数について。

2
absmiths