服务器:使用标准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
- 返回预期的结果,
但
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中使用了标准设置。它是什么?
答案 0 :(得分:1)
尝试在控制器中使用Microsoft.AspNet.OData命名空间而不是System.Web.Http.OData。
答案 1 :(得分:0)
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节。