c# - ASP.Net MVC4 RC Web-Api Odata 过滤器不适用于 IQueryable

标签 c# .net asp.net-web-api

在 ASP.net MVC4 RC 的 Web-api 中,我像以前一样定义了一个 Get 操作:

public IQueryable<Person> Get()
    {
        var lst = ctx.GetListFromDB();
        return lst.AsQueryable();
    }

如果我调用如下 url,我之前运行它时: /api/people?$inlinecount=allpages&$format=json&$top=50&$filter=(State+eq+'AL'+and+Zip+eq+'35242')

它会对对象进行过滤,自测试版以来是否发生了某些更改会破坏此功能?

最佳答案

您必须将 [Queryable] 属性放在方法上以允许过滤。描述更改的发行说明 are here .

更新: 在 RTM 中,他们似乎已将此功能分离到它自己的程序集中,因此您必须包含对 Microsoft 的 ASP.NET Web API OData 程序集的引用。你可以在 Nuget 上找到最新版本 https://nuget.org/packages/Microsoft.AspNet.WebApi.OData

更新: 在最新版本中,Queryable 属性已重命名为 EnableQuery。 有关更改的更多信息,请参阅 http://blogs.msdn.com/b/webdev/archive/2014/03/13/getting-started-with-asp-net-web-api-2-2-for-odata-v4-0.aspx

关于c# - ASP.Net MVC4 RC Web-Api Odata 过滤器不适用于 IQueryable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10885868/

相关文章:

c# - 离开 ApiController 方法后 WEB API 挂起

c# - MEF 组合拦截和导入选择

c# - ASP.NET MVC 2 显示()

c# - 在 C# 中,是否可以使用 "as many parameters as I have"调用方法(具有默认参数)?

c# - 发生错误 .", ExceptionMessage: "提供的 'HttpContent' 实例无效

c# - ASP.NET WebApi 无法与 Azure 中的 COM (Excel) 配合使用

C# foreach 循环迭代与查询执行时的列表

c# - 从 WinForms 应用程序中的另一个线程访问由 GUI 工作线程创建的按钮

.net - 在 WPF 中缓存大量实体

c# - 创建与 AspNetUsers 表的关系