Odata:不支持查询参数“$count”

Odata: The query parameter '$count' is not supported

服务器:使用标准 VS 2015 生成器生成的 Odata 控制器。

// GET: odata/MyEntities
[EnableQuery(AllowedQueryOptions = AllowedQueryOptions.All)]
public IQueryable<Models.Odata. MyEntity> GetMyEntities()
{
  return db.MyEntities;
}

客户端:KendoUI

var ds = new kendo.data.HierarchicalDataSource({
  type: "odata-v4",
  transport: {
    read: {
      url: "odata/EndPoints",
      dataType: "json"
    }
  },
  schema: {
            model: {
                id: "Id",
            }
        }
  });

要求:

http://localhost:44444/odata/MyEntities?$format=json - returns 期待什么, 但是

http://localhost:44444/odata/MyEntities?$format=json&$count=true - 产生错误:

{
  "odata.error":{
    "code":"","message":{
      "lang":"en-US","value":"The query parameter '$count' is not supported."
    }
  }
}

我在 AppStart 中使用了标准设置。这是什么?

OData 版本 3 有一个名为 $inlinecount 的查询选项,而不是 $count。看来您将查询选项与 /$count 路径段和版本 4.

中的 $count 查询选项混淆了

请求集合中实体的总数以及实体本身:

GET http://localhost:44444/odata/MyEntities?$format=json&$inlinecount=allpages

仅请求实体集合的计数:

GET http://localhost:44444/odata/MyEntities/$count?$format=json

参见 OData Version 3.0 Core Protocol,第 10.2.3.6 和 10.2.5 节。

尝试在控制器中使用 Microsoft.AspNet.OData 命名空间而不是 System.Web.Http.OData。