在 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/