14

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')

オブジェクトのフィルタリングを行いますが、これを壊すようなベータ版以降の変更はありますか?

4

3 に答える 3

41

フィルタリングを許可するには、メソッドに [Queryable] 属性を設定する必要があります。変更を説明するリリース ノートはこちらです。

更新: 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

于 2012-06-11T02:44:00.707 に答える
10

そのため、この機能は最終リリーススケジュールから削除されたようです。つまり、今のところ、必要なフィルタリング、並べ替え、およびページングのパラメーターを含めるために、既存のWebAPIアクションメソッドを変更する必要があると思います。本当に悲しい。

http://aspnetwebstack.codeplex.com/SourceControl/changeset/changes/af11adf6b3c5

...悪いニュースの担い手であることに反対票を投じないでください;)

于 2012-07-05T17:47:00.370 に答える
1

私が見たところ (2012 年 9 月 20 日) から、これを機能させるにはhttps://nuget.org/packages/Microsoft.AspNet.WebApi.OData/0.1.0-alpha-120815 Nuget パッケージが必要です。残念ながら、まだプレリリースです。[Queryable] 属性はこのパッケージにあります。

これに関する非常に良い情報は見つかりませんでした。

于 2012-09-20T17:02:13.933 に答える