使用$ inlinecount而不使用MapODataServiceRoute

时间:2015-05-28 18:27:41

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

我有一个控制器1 继承的形式ApiController返回某个实体的IQueryable。

我有另一个控制器2 返回同样的东西,但继承了ODataController和oData路由配置这样的

            ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntitySet<StoreCommand>("StoreCommandsTest");
        config.Routes.MapODataServiceRoute(routeName: "OData", routePrefix: "api", model: builder.GetEdmModel());
        config.AddODataQueryFilter();

当我尝试运行http://localhost:xxxx/api/Controller1时?$ inlinecount = allpages&amp; $ top = 0我得到空白的json对象结果

当我尝试运行http://localhost:xxxx/api/Controller2时?$ inlinecount = allpages&amp; $ top = 0我使用odata.count = 100得到了正确的结果

我的问题是控制器1的情况有什么问题?

最终我试图只获得计数

1 个答案:

答案 0 :(得分:0)

这些查询选项应该适用于ApiController,但您应该在控制器的方法中添加EnableQuery属性。

http://localhost:xxxx/api/Customers/ $只能获得计数。