【发布时间】:2015-03-07 19:11:33
【问题描述】:
截至 2015 年 1 月应用 EnableQueryAttribute 的正确/错误之处在哪里?
下面链接的文档:
说:
[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 的操作上:
[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<Team>(_leage.Teams.Where(t => t.Id == id)));
}
}
我正在疯狂地寻找关于 OData v4 / WebApi 2.2 的最新、准确和一致的文档。
今天哪个是正确的?
【问题讨论】:
标签: c# asp.net-web-api odata