データ サービスの作成 (WCF Data Services クイック スタート)

このタスクでは、Northwind サンプル データベースに基づいて、Open Data Protocol (OData) フィードを公開するサンプル データ サービスを作成します。 この作業に必要な基本手順は次のとおりです。

  1. ASP.NET Web アプリケーションを作成します。

  2. Entity Data Model ツールを使用して、データ モデルを定義します。

  3. データ サービスを Web アプリケーションに追加します。

  4. データ サービスへのアクセスを有効にします。

Dd728275.note(ja-jp,VS.100).gif注 :
このタスクを完了するときに作成する ASP.NET Web アプリケーションは、Visual Studio で提供される ASP.NET 開発サーバー上で実行します。開発時にデータ サービスのテストおよびトラブルシューティングを行いやすくするために、インターネット インフォメーション サービス (IIS) を使用して、データ サービスをホストするアプリケーションを実行することを検討してください。詳細については、「方法: IIS 上で実行する WCF Data Service を開発する」を参照してください。

ASP.NET Web アプリケーションを作成するには

  1. Visual Studio の [ファイル] メニューで、[新規作成][プロジェクト] の順に選択します。

  2. [新しいプロジェクト] ダイアログ ボックスで、プログラム言語として [Visual Basic] または [Visual C#] のいずれかを選択します。

  3. [テンプレート] ペインで、[ASP.NET Web アプリケーション] を選択します。 メモ : Visual Studio Web Developer を使用する場合は、新しい Web アプリケーションではなく、新しい Web サイトを作成する必要があります。

  4. プロジェクトの名前として「NorthwindService」を入力します。

  5. [OK] をクリックします。

  6. (省略可能) Web アプリケーションに対して特定のポート番号を指定します。 メモ : このクイック スタートの以降の作業では、ポート番号 12345 を使用します。

    1. ソリューション エクスプローラーで、作成した ASP.NET プロジェクトの名前を右クリックし、[プロパティ] をクリックします。

    2. [Web] タブを選択し、[ポートを指定する] ボックスの値を 12345 に設定します。

データ モデルを定義するには

  1. ソリューション エクスプローラーで、ASP.NET プロジェクトの名前を右クリックし、[新しい項目の追加] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスで [ADO.NET エンティティ データ モデル] を選択します。

  3. データ モデルの名前として「Northwind.edmx」を入力します。

  4. エンティティ データ モデル ウィザードで、[データベースから生成] を選択し、[次へ] をクリックします。

  5. 次のいずれかの手順を実行し、データ モデルをデータベースに接続してから [次へ] をクリックします。

    • データベース接続がまだ構成されていない場合は、[新しい接続] をクリックして新しい接続を作成します。 詳細については、「方法: SQL Server データベースへの接続を作成する」を参照してください。 この SQL Server インスタンスには、Northwind サンプル データベースがアタッチされている必要があります。

      または

    • Northwind データベースに接続するようにデータベース接続が既に構成されている場合は、一覧からその接続を選択します。

  6. ウィザードの最終ページで、データベース内のすべてのテーブルのチェック ボックスをオンにし、ビューおよびストアド プロシージャのチェック ボックスをオフにします。

  7. [完了] をクリックして、ウィザードを終了します。

    Dd728275.note(ja-jp,VS.100).gif注 :
    この生成されたデータ モデルは、エンティティ型の外部キー プロパティを公開します。Visual Studio 2008 を使用して作成したデータ モデルには、これらの外部キー プロパティが含まれません。そのため、Visual Studio 2008 を使用して作成された Northwind データ サービスにアクセスしようとする前に、このバージョンの Northwind データ サービスにアクセスするために作成されたクライアント アプリケーションのクライアント データ サービス クラスを更新する必要があります。

データ サービスを作成するには

  1. ソリューション エクスプローラーで、ASP.NET プロジェクトの名前を右クリックし、[新しい項目の追加] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスで、[ADO.NET Data Service] を選択します。

  3. サービスの名前として「Northwind」を入力します。

    Visual Studio で新しいサービスの XML マークアップおよびコード ファイルが作成されます。 既定では、コード エディターのウィンドウが開きます。 ソリューション エクスプローラーでは、このサービスに Northwind という名前が付き、拡張子は .svc.cs または .svc.vb になります。

  4. データ サービスのコードで、データ サービスを定義するクラスの定義にあるコメント /* TODO: put your data source class name here */ をデータ モデルのエンティティ コンテナーである型 (この場合は NorthwindEntities) で置き換えます。 クラス定義は次のようになります。

    Public Class Northwind
        Inherits DataService(Of NorthwindEntities)
    
    public class Northwind : DataService<NorthwindEntities>
    

データ サービス リソースへのアクセスを有効にするには

  1. データ サービスのコードで、InitializeService 関数のプレースホルダーのコードを次の内容で置き換えます。

    ' Grant only the rights needed to support the client application.
    config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead _
         Or EntitySetRights.WriteMerge _
         Or EntitySetRights.WriteReplace)
    config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead _
        Or EntitySetRights.AllWrite)
    config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead)
    
     // Grant only the rights needed to support the client application.
    config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead 
         | EntitySetRights.WriteMerge 
         | EntitySetRights.WriteReplace );
     config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead
         | EntitySetRights.AllWrite);
     config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead);
    

    これにより、承認されたクライアントは、指定したエンティティ セットのリソースに読み取りおよび書き込みアクセスできるようになります。

    Dd728275.note(ja-jp,VS.100).gif注 :
    ASP.NET アプリケーションにアクセスできるクライアントは、データ サービスによって公開されるリソースにもアクセスできます。運用データ サービスで、リソースへの承認されていないアクセスを防止するために、アプリケーション自身もセキュリティで保護する必要があります。詳細については、「Securing ASP.NET Web Sites」を参照してください。

次の手順

ここでは、Northwind サンプル データベースに基づいて、OData フィードを公開する新しいデータ サービスを作成し、ASP.NET Web アプリケーションへのアクセス許可を持つクライアントからフィードへのアクセスを有効にしました。 次は、Visual Studio からデータ サービスを開始して、Web ブラウザーから HTTP GET 要求を送信して OData フィードにアクセスします。

Web ブラウザーからサービスへのアクセス

参照

その他のリソース

ADO.NET Entity Data Model Tools