web-dev-qa-db-ja.com

複数の述語を持つOData $ filter

モデルに「People」と「Addresses」という2つのエンティティがあり、AddressListナビゲーションプロパティを介してアクセスする特定のPersonに0個以上のアドレスがある場合、次の質問に答えるODataクエリを作成できます。

「姓がスミスで終わり、少なくとも1つの住所がある人は誰ですか?」

私にはここで1つの述語しかできないようです、例えば.

http:// localhost:55100/DemographicsDataService.svc/People ?$ filter = endswith(LastName、 'Smith')

(2番目の述語を処理するために$ filterを書くことさえできるとはまだ確信していません。この場合、「姓がsmithで終わり、名がMaryで始まる」という質問に答えようとしていると仮定します)

33
Ben Vitale

$ filterで述語を確実に組み合わせることができます。例えば:

/People?$filter=endswith(LastName,'Smith') and startswith(FirstName,'Mary')

サポートされている演算子などの詳細については、このページを参照してください。 http://www.odata.org/documentation/odata-version-2-0/uri-conventions#FilterSystemQueryOption 現在、ODataにはありません「少なくとも1つの住所を持つ人」という質問を表現する方法。データによっては、最初の基準を満たすすべての人をダウンロードし、代わりにクライアント上のアドレスを持つ人を決定することが可能かもしれません。

60