1

コレクションデータメンバーとこのサービスのような追加メンバーで構成されるreaultタイプを返すWebAPIデータサービスを作成したいのですが、次のようになります。

http://services.odata.org/OData/OData.svc/Suppliers?$ filter = Address / City eq'Redmond'

ご覧のとおり、結果タイプはコレクションデータメンバーと追加メンバーで構成されています

誰かが私にそれを行う方法のサンプルを送ってもらえますか?

この種の複雑なタイプを作成して、そこの値でコレクションアイテムをフィルタリングできるようにすることはできません

yuoがこのクエリで確認できるように、アイテムをフィルタリングせずにすべての結果を返します

services.odata.org/OData/OData.svc/Suppliers

このタイプを次のようにフィルタリングできるようにしたい:

services.odata.org/OData/OData.svc/Suppliers?$filter=Address/City eq'Redmond'

このクエリでは、コレクションメンバーのアイテムをフィルタリングし、他のデータメンバーを返すことができました。

4

2 に答える 2

0

Odataのサポートは、asp.netwebapiRCで暗黙的に行われました。アクションからIQueryableを返し、[QueryableAttribute]でマークする必要がありました。これだけサポートされているクエリ文字列ベースのデータフィルタリング。

[QueryableAttribute]がRTMに組み込まれていないのを見て、少しがっかりしました。

RTMでは、プレビュー/アルファ形式のNuget上のMicrosoft.AspNet.WebApi.ODataという個別のパッケージとして利用できます。完全リリースはこの秋後半に予定されています。ここ(http://www.nuget.org/packages/Microsoft.AspNet.WebApi.OData)から入手できます。利用可能な素晴らしい概要投稿があります(http://blogs.msdn.com/b/alexj/archive/2012/08/15/odata-support-in-asp-net-web-api.aspx)

于 2012-08-29T11:00:24.260 に答える
0

次のようなフィルターを実装するだけの場合:services.odata.org/OData/OData.svc/Suppliers?$ filter = Address / City eq'Redmond'

http://aspnet.codeplex.com/SourceControl/changeset/view/903afc4e11df#Samples%2fNet4%2fCS%2fWebApi%2fODataServiceSample%2fReadMe.txtでサンプルを確認してください

クエリ可能な属性を持つサプライヤとアドレスモデルがあります。同じ$filterクエリで機能するはずです。

于 2012-08-29T18:42:46.007 に答える