asp.net-mvc-4 - MVC4 WebApi OData $count 不适用于 IQueryable

标签 asp.net-mvc-4 asp.net-web-api odata

我在 MVC4 的 Controller 中有一个简单的 Get 操作:

// GET /branches
// returns a list of available branches
[Queryable]
public IQueryable<string> Get() {
    return BranchesRepository.GetBranchNames().AsQueryable();
}

当我仅使用 GET 甚至使用一些 OData 选项(如 $top、$skip 和 $filter)调用它时,这非常有效。 但是当我用 $count 调用它时它不起作用。

例如:

/branches/$count

返回

[]

而我希望看到一个数字。

响应 header 为我提供了我正在使用的 asp.net 版本

X-AspNet-Version: 4.0.30319

$count 参数在这个版本中被破坏了吗?或者我可以做些什么来让它发挥作用?

最佳答案

还在使用 Beta/RC 版本的 Web API 吗?如果是这样,则仅支持 $top、$skip、$orderby 和 $filter。 此外,RTM 版本中删除了 QueryableAttribute

现在仅通过预览包在 Web API 中支持 OData http://www.nuget.org/packages/Microsoft.AspNet.WebApi.OData .

但是目前无论如何都不支持 $count。

关于asp.net-mvc-4 - MVC4 WebApi OData $count 不适用于 IQueryable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12961018/

相关文章:

c# - MVC 4 中的只读属性

.net - 回收工作进程后从 session cookie 中读取的 ClaimsIdentity 类型不正确

asp.net-web-api - EF 核心 : An exception occurred in the database while iterating the results of a query

c# - 在 WebAPI OData 请求中包含相关实体

c# - MVC 4 表单例份验证 - 除了在 web.config 上声明的操作之外,无法访问任何其他操作

asp.net-mvc-4 - 升级到 .NET 4.5 和 EF 5 后“启用迁移”失败

asp.net - 如何在 asp.net web api 中过滤本地请求?

asp.net-web-api - 统一容器 : what is default lifetimemanager

javascript - 检测到具有不兼容类型的二元运算符。为运算符种类 'Edm.Guid' 找到操作数类型 'Edm.String' 和 'Equal'

odata - Olingo 贪心 $expand