URI によるデータの単純なアドレス指定スキーム (ADO.NET Data Services フレームワーク)
ADO.NET Data Services フレームワークでは、URI を使用してデータを検索するアドレス指定スキームが実装されます。エンティティ データ モデル のエンティティ リレーションシップ パターンを使用して、エンティティとしてのデータ、およびエンティティ セット内で論理的にグループ化されたエンティティとの関連付けが整理されます。これらのパターンは、URI アドレス指定スキームに反映されます。
例を挙げてこのシステムを説明するために、次の例では顧客追跡サービスを使用します。すべての Customer
エンティティは、次の URI でアドレス指定されます。
http://myserver/data.svc/Customers
URI の /Customers
セグメントは、メタデータで指定されている Customer
エンティティのセットを示しています。ADO.NET Data Services フレームワークのメタデータは、EDM の概念スキーマと同等です。エンティティ セット Customers
は、Customer
エンティティ型のすべてのインスタンスを論理的に含んでいます。
この構文では、次の URI が 1 つの Customer
エンティティを取得します。このエンティティのキー プロパティは、メタデータに定義されているように、'ALFKI' の値を持っています。
http://myserver/data.svc/Customers('ALFKI')
エンティティと関連付け
メタデータは、エンティティ型の構造とエンティティ間の関連付けを記述します。ADO.NET Data Services フレームワークでは、この情報を利用して関連付けの走査メカニズムが提供されます。たとえば、データ サービス内の各 Customer
エンティティに Orders
のセットが関連付けられている場合、次の URI は、主キーに 'ALFKI' の値を持つ Customer
に関連付けられている販売注文のセットを表します。
http://myserver/data.svc/Customers('ALFKI')/Orders
Customer
エンティティのプロパティは、個別にアドレス指定できます。たとえば、次の URI は、'ALFKI' のキーを持つ Customer
エンティティの ContactName
を表します。
http://myserver/data.svc/Customers('ALFKI')/ContactName
キーに基づいたクエリの他に、アドレス指定スキームには単純な述語を含めることができます。これにより、'ALFKI' のキーを持つ Customer
に対して現在アクティブな Orders
のセットなどのように、エンティティのプロパティに基づいてデータのセットを選択できます。このデータは次の URI で取得されます。
http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=Active eq true
上記の例で使用されている $filter
演算子は、文字列、数値、または日付の関数と併用することもできます。次の URI は、2007 年に行われた Customer
'ALFKI' のアクティブな注文のセットを表します。
http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=
Active eq true and (year(OrderDate) eq 2007)
Orders
に他のエンティティが関連付けられている場合は、URI を関連付けグラフにドリル ダウンして、関連付けを走査し、結果として得られた各セットをフィルタ処理できます。
表示制御情報
ADO.NET Data Services の URI では、データを並べ替えるクエリ文字列に情報を含めることもできます。インターネット アプリケーションに対する一般的な要件には、データのページングとプロパティごとの並べ替えがあります。次の URI は、日付で並べ替えられた Orders
エンティティの一覧を表示します。
http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=
Active eq true&$orderby=OrderDate
ページングは $skip
および $top
パラメータを組み合わせることで行われます。顧客一覧では、次の URI によって番号 31 ~ 41 が取得されます。
http://myserver/data.svc/Customers?$skip=30&$top=10
GET、PUT、POST、および DELETE
上の例の構文は、エンティティとエンティティのコレクションを取得するために HTTP GET 要求で使用されます。ADO.NET Data Services ではエンティティまたはリレーションシップを更新するために HTTP PUT 構文を使用します。同様に、HTTP POST 構文は新しいエンティティを作成するために使用し、HTTP DELETE 構文はエンティティをストレージから削除するために使用します。詳細については、「ADO.NET Data Services のクライアント アプリケーション」を参照してください。
参照
概念
REST サービスおよびセマンティクス (ADO.NET Data Services フレームワーク)
一般的な HTTP 要件 (ADO.NET Data Services フレームワーク)