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 に関する最新かつ正確で一貫性のあるドキュメントを探すのに必死です。
今日はどちらが正しいでしょうか?
ベストアンサー1
グローバル設定(HttpConfigurationオブジェクトのインスタンス)を使用して、
config.Filters.Add(new EnableQueryAttribute()
{
PageSize = 2
// .. other settings
});
これはうまくいく