Share via


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 フレームワーク)

その他のリソース

ADO.NET Entity Framework