「リソースのアドレスを指定する URI 形式 (ADO.NET Data Services フレームワーク)」に説明されているように、URI のクエリ オプション セグメントは、2 種類の情報を指定します。
クエリ オプションとサービス操作パラメータは、次の規則に従う必要があります。
サポートされているクエリ オプションであれば、任意の数のオプションを 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 フレームワーク)