web-dev-qa-db-ja.com

WebAPI 2.2 OData v4 [EnableQuery]はどこに適用されますか?

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タイプを返すコントローラーアクションのクエリオプションをグローバルに有効にします。

しかし、WebApi2.2のOData4に関するこのドキュメントでは、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<Team>(_leage.Teams.Where(t => t.Id == id)));
    }
}

OData v4/WebApi 2.2で、最新の正確で一貫性のあるドキュメントを見つけようと夢中になっています。

今日はどちらが正しいですか?

17
Luke Puplett

グローバル構成(HttpConfigurationオブジェクトのインスタンス)を使用して、

config.Filters.Add(new EnableQueryAttribute()
            {
                PageSize = 2
                // .. other settings
            });

これは動作します

9
xxxmatko