次の方法で共有


REST サービスおよびセマンティクス (ADO.NET Data Services フレームワーク)

Representational State Transfer (REST) サービスは、次の 2 つの要件に基づいています。

  • ネットワーク リソースの検索に使用されるアドレス指定スキーム。

  • これらのリソースの表現を返すための手法。

ADO.NET Data Services フレームワークでは、これらの REST 要件の両方がサポートされています。ADO.NET Data Services フレームワークでは、HTTP ヘッダー経由でネゴシエートされたデータを検索するために URI を使用するデータ アドレス指定スキームが実装されます。データは、JavaScript Object Notation (JSON) または Atom Publishing Protocol (AtomPub) で転送されます。

ADO.NET Data Services では、データ ストレージ実装の範囲に基づいてエンティティ間にデータ エンティティとリレーションシップを配置できます。このシステムでは、IQueryable を実装するプロバイダを配置できます。更新をサポートするには、プロバイダで IUpdatable を実装する必要があります。

また、ADO.NET Data Services フレームワークでは、既に確立されている HTTP キャッシュ インフラストラクチャと、Microsoft ASP.NET などの標準的な認証スキームを使用して、データ サービスへのアクセスを制御します。

データ アドレス指定スキーム

ADO.NET Data Services のデータ アドレス指定スキームでは、HTTP ヘッダー経由でネゴシエートされたデータを指定するために URI を使用します。データ サービス リソースを検索する有効な URI を次の例に示します。

すべての Customers : http://host/service.svc/Customers

出荷日で並べ替えられたすべての Orders : http://host/service.svc/SalesOrders?$orderby=ShippedDate

キー 'ALFKI' を持つ Customer エンティティ : http://host/service.svc/Customers('ALFKI')

キー 'ALFKI' を持つ Customer の Orders エンティティ : http://host/service.svc/Customers('ALFKI')/SalesOrders

その他の構文の例については、「URI によるデータの単純なアドレス指定スキーム (ADO.NET Data Services フレームワーク)」を参照してください。

データ定義モデル

ADO.NET Data Service では、概念スキーマ定義言語 (CSDL) を使用して、表すデータを定義します。CSDL スキーマは、エンティティ データ モデル (EDM) に基づいた XML ドキュメントです。EDM の詳細については、「ADO.NET Entity Framework」を参照してください。

適切に定義されたデータ記述メカニズムにより、サービスからのメタデータの抽出や、実行時に使用されるユーザー インターフェイス、ラッパー、メタデータ リポジトリの構築を行うための設計時ツールを作成して、データの利用を容易にすることができます。

次の CSDL の例では、2 つの EntityType データ構造 (Customer および SalesOrder) を定義します。各データ構造には、いくつかのプロパティと、Customer および Order エンティティ間のリレーションシップの走査を可能にする NavigationProperty が含まれます。この例では、NavigationProperty は、Customer および Order エンティティ間で定義された 1 対多の Association に基づいています。

<?xml version="1.0" encoding="utf-8"?>
 <Schema Namespace="NorthwindModel" Alias="Self"
 xmlns="https://schemas.microsoft.com/ado/2006/04/edm">
  <EntityType Name="Customer">
    <Key>
      <PropertyRef Name="CustomerID" />
    </Key>
    <Property Name="CustomerID" Type="String" Nullable="false" />
    <Property Name="CompanyName" Type="String" Nullable="false" />
    <Property Name="ContactName" Type="String" Nullable="true" />
    <Property Name="City" Type="String" Nullable="true" />
    <Property Name="Country" Type="String" Nullable="true" />
    <NavigationProperty Name="SalesOrders"
            Relationship="Self.Customer_Order" FromRole="Customer"
            ToRole="SalesOrder" />
  </EntityType>

  <EntityType Name="SalesOrder">
    <Key>
      <PropertyRef Name="OrderID" />
    </Key>
    <Property Name="OrderID" Type="Int32" Nullable="false" />
    <Property Name="OrderDate" Type="DateTime" Nullable="true" />
    <Property Name="ShipCity" Type="String" Nullable="true" />
    <Property Name="ShipCountry" Type="String" Nullable="true" />
    <NavigationProperty Name="Customer"
       Relationship="Self.Customer_Order"
       FromRole="SalesOrder" ToRole="Customer" />
  </EntityType>

  <Association Name="Customer_Order">
    <End Role="Customer" Type="Self.Customer" Multiplicity="1" />
    <End Role="SalesOrder" Type="Self.SalesOrder" Multiplicity="*" />
  </Association>

  <EntityContainer Name="NorthwindEntities">
    <EntitySet Name="Categories" EntityType="Self.Category" />
    <EntitySet Name="Products" EntityType="Self.Product" />
    <EntitySet Name="Customers" EntityType="Self.Customer" />
    <EntitySet Name="SalesOrders" EntityType="Self.SalesOrder" />
    <AssociationSet Name="CustomerOrders"
                  Association="Self.Customer_Order">
      <End Role="Customer" EntitySet="Customers" />
      <End Role="SalesOrder" EntitySet="SalesOrders" />
    </AssociationSet>
  </EntityContainer>

</Schema>

参照

概念

ADO.NET Data Services フレームワークの概要
ADO.NET Data Services の作成
ADO.NET Data Services のクライアント アプリケーション
ADO.NET Data Service 仕様
データ転送形式 (ADO.NET Data Services フレームワーク)

その他のリソース

エンティティ データ モデル