次の方法で共有


ADO.NET Data Services のクエリ オプション

リソースのアドレスを指定する URI 形式 (ADO.NET Data Services フレームワーク)」に説明されているように、URI のクエリ オプション セグメントは、2 種類の情報を指定します。

  1. ADO.NET Data Services のシステム クエリ オプション

  2. サービス操作のパラメータ (ADO.NET Data Services フレームワーク)

クエリ オプションとサービス操作パラメータは、次の規則に従う必要があります。

  • サポートされているクエリ オプションであれば、任意の数のオプションを 1 つの URI クエリ文字列で指定できます。

  • 各クエリ オプションは、他のオプションの有無とは関係なく、クエリ文字列に存在できます。

  • URI 内のクエリ オプションの順序は重要ではありません。

  • クエリ オプション名では大文字と小文字が区別されます。

  • クエリ オプション値では大文字と小文字が区別されます。

  • 特定のシステム クエリ オプションは、要求 URI のクエリ文字列に一度だけ表示できます。

構文

次のセクションは、RFC 4234 で規定されているバッカスナウア記法の構文要素を使用して ADO.NET Data Services の URI を構成するための規則を示しています。ADO.NET Data Services の URI は、サービス ルート、リソース パス、クエリ オプションの 3 つのセクションで構成されています。これらのセクションを構成すると、リソースをアドレス指定するための URI を形成できます。

ADO.NET_DataService_URI = "http://" serviceRoot [ resourcePath ["?" queryOptions ] ]

serviceRoot = host [ ":" port ] [*( "/" segment-nz )]

resourcePath = "/" resourceSet | serviceOperation [ navPath ] 

navPath = ("("keyPredicate")" [ navPath_np / propertyPath / propertyPath_ct ] )

navPath_np = "/" resourceNavigationProperty [ navPath ]

propertyPath = "/" resourceProperty [ "/$value" ] 

propertyPath_ct = 1*("/" resourceComplexType) [ propertyPath ]

keyPredicate = 1*DIGIT / ("’" 1*unreserved "’") / 1*(HEXDIG HEXDIG) ["," keyPredicate]
 //NOTE: strings, GUIDs, and dates are enclosed in quotation marks.

queryOptions = sysQueryOperation / serviceOpParamName *(“&” sysQueryOperation / serviceOpParam)

以前の定義には、RFC 3986 の用語が使用されています。

  • DIGIT = RFC 3986 (0-9) で定義されたとおり

  • host = RFC 3986 で定義されたとおり

  • port = RFC 3986 で定義されたとおり

  • segment-nz = RFC 3986 で定義されたとおり (URI の予約文字セット外の空でない文字シーケンス)

  • pchar = RFC 3986 で定義されたとおり (URI の予約文字セット外の空でない文字シーケンス)

規則の意味と範囲は次のとおりです。

  • Service operation : サービス操作の名前。「サービス操作のパラメータ (ADO.NET Data Services フレームワーク)」を参照してください。

  • resourceSet : リソース セットの名前。許容されている文字は、エンティティ データ モデル (EDM) 仕様の EntitySet 名に許可された文字セットと同じです。

  • Resource type : 前のパス セグメントで参照されるリソース セット内のリソース型の名前。許容されている文字は、エンティティ データ モデル (EDM) 仕様の EntityType 名に許可された文字セットと同じです。

  • Resource property : パス セグメントのリソース型またはリソース複合型のリソース プロパティの名前。許容されている文字は、EDM 仕様の EntityType プロパティ名に許可された文字セットと同じです。

  • Resource navigation property : 前のパス セグメントのリソース型のリソース ナビゲーション プロパティまたはリソース ナビゲーション リンクの名前。前のセグメントがリソース セットの場合、このプロパティは、指定されたリソース セット内の型である必要があります。ナビゲーションおよびリンク プロパティの詳細については、「リソース パスの規則とセマンティクス (ADO.NET Data Services フレームワーク)」を参照してください。許容されている文字は、EDM 仕様のナビゲーション プロパティ名に許可された文字セットと同じです。

  • System query operation= "$" query "=" query この種の構文は $ から始まり、URI で ? の後ろに続きます。詳細については、「ADO.NET Data Services のシステム クエリ オプション」を参照してください。

  • Service Operation Parameter= query "=" query これらのクエリは、サービス操作のパラメータです。クエリの結果を関数のパラメータとして指定して、サービス操作のクエリを入力できます。詳細については、「サービス操作のパラメータ (ADO.NET Data Services フレームワーク)」を参照してください。

次の構文は、ADO.NET Data Service の URI に含まれている、異なった部分を示しています。

http://www.example.com:88/path/service.root.svc/Customers(‘ALFKI’)/Orders?$skip=2&$take=2

URI には次の部分が含まれます。

サービス ルート : www.example.com:88/path/service.root.svc

ホスト : www.example.com

ポート : 88

リソース パス : /Customers(‘ALFKI’)/Orders

リソース セット : Customers

ナビゲーション パス : (‘ALFKI’)/Orders

キー述語 : ‘ALFKI’

ナビゲーション パスのナビゲーション プロパティ : Orders

クエリ オプション : $skip=2&$top=2

参照

概念

リソース パスの規則とセマンティクス (ADO.NET Data Services フレームワーク)
ADO.NET Data Services のシステム クエリ オプション
サービス操作のパラメータ (ADO.NET Data Services フレームワーク)