WebAPI 2.2 OData v4 适用于哪里?
从2015年1月起应用EnableQueryAttribute在哪里正确/不正确?
该文件链接如下:
http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint
说:
[EnableQuery]属性允许客户端使用$ filter,$ sort和$ page等查询选项修改查询。 有关更多信息,请参阅支持OData查询选项。
以下链接文件:
http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options
说:
EnableQuerySupport方法为任何返回IQueryable类型的控制器操作全局启用查询选项。
但是这篇关于WebApi 2.2上OData 4的文档已经将它放在了返回IHttpActionResult的行为上:
http://blogs.msdn.com/b/webdev/archive/2014/03/13/getting-started-with-asp-net-web-api-2-2-for-odata-v4-0.aspx
[ODataRoutePrefix("Teams")] public class TeamsEntitySetController : ODataController { private readonly LeageContext _leage = new LeageContext(); [EnableQuery] [ODataRoute] public IHttpActionResult GetFeed() { return Ok(_leage.Teams); } [ODataRoute("({id})")] [EnableQuery] public IHttpActionResult GetEntity(int id) { return Ok(SingleResult.Create(_leage.Teams.Where(t => t.Id == id))); } }
我想疯狂地尝试在OData v4 / WebApi 2.2上找到最新,准确和一致的文档。
今天哪个是正确的?
使用全局配置(HttpConfiguration对象的实例)并调用
config.Filters.Add(new EnableQueryAttribute() { PageSize = 2 // .. other settings });
这很有效
- 在应用程序配置文件中找不到名为的连接字符串
- ASP.NET web api无法获得application / x-www-form-urlencoded HTTP POST
- 具有子集合的AngularJs Post Object到MVC WebAPI
- Webapi2 – 在一个任务完成后从控制器操作返回,但继续进一步的异步处理
- 为Bearer授权添加额外的逻辑
- WebAPI OData操作示例 – CheckOut和CheckOutMany操作之间的区别
- ASP.NET 5中的Web API身份validation
- 自动生成的帮助页面,返回类型为HttpResponseMessage
- 你如何在ASP 5(vnext)中抛出HttpResponseException