エクスポート (0) 印刷
すべて展開

方法: WCF Data Services で Azure SQL データベースに接続する

更新日: 2014年4月

WCF Data Services (旧称 ADO.NET Data Services) を使用すると、Representational State Transfer (REST) に基づいた、Open Data Protocol (OData) を実装するデータ サービスを作成できます。OData は標準のインターネット プロトコルに基づいているため、HTTP メッセージを送受信したり XML を解析したりできるクライアント アプリケーションであれば、こうしたデータ サービスにアクセスできます。また、さまざまなアプリケーション プラットフォームでの OData フィードの使用を容易にするクライアント ライブラリが多数存在しています。OData をサポートしているクライアント ライブラリの詳細については、「OData SDK」を参照してください。

WCF Data Services を使用するには、データ サービス プロバイダーの実装でデータ モデルを定義し、基になるデータ ソースへのアクセスを提供する必要があります。Entity Framework 用のデータ サービスは、Azure SQL データベース プロバイダーを使用して作成できます。WCF Data Services の使用方法の詳細については、「WCF Data Services」を参照してください。

noteメモ
Azure SQL データベースへの接続を開く場合は、接続タイムアウトを 30 秒に設定します。

このトピックでは、Azure SQL データベース をベースにした簡単なデータ サービスと、そのデータ サービスにアクセスする Azure アプリケーションの作成方法を紹介しています。ここでは、「How To: Migrate a Database by Using Scripts」で Azure SQL データベース に配置した School というサンプル データベースを使用します。

この例に従って操作を行うには、Azure SDK および Azure Tools for Microsoft Visual Studio をインストールする必要があります。Azure の詳細については、「Azure SDK」を参照してください。さらに、Azure Tools でインストールされる開発ストレージ サービスを、DSInit ユーティリティを使用して初期化する必要があります。開発ストレージの初期化は 1 回のみ実行してください。詳細については、「開発ストレージについて」を参照してください。

  1. Visual Studio の [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

    Warning警告
    Azure 開発ファブリックを使用するには、管理者として Visual Studio を実行する必要があります。

  2. [プロジェクトの種類] ペインで、[Web] をクリックします。[テンプレート] ペインで [ASP.NET Web アプリケーション] をクリックします。名前として「SchoolApplication」を入力し、[OK] をクリックします。

  3. ソリューション エクスプローラー[SchoolApplication] を右クリックし、[追加] をポイントして、[新しい項目] をクリックします。

  4. [ADO.NET エンティティ データ モデル] を選択し、名前として「SchoolDataModel.edmx」を入力し、[追加] をクリックします。

  5. Entity Data Model ウィザード[データベースから生成する] を選択し、[次へ] をクリックします。

  6. [新しい接続] をクリックし、Azure SQL データベース サーバー上の School データベースの情報を入力して、[OK] をクリックします。[いいえ、重要情報を接続文字列に含めません。この情報をアプリケーション コードに設定します。] を選択します。続けて、[次へ] をクリックします。

  7. [テーブル] を選択し、[完了] をクリックします。これで、データベースの各テーブルのエンティティの種類を定義する .edmx ファイルが作成されます。

    Caution注意
    Visual Studio 2010 以降でこの例に従って操作を行うには、[生成されたオブジェクト名を複数化または単数化する] チェック ボックスをオフにしてください。この例を Visual Studio 2008 で実行している場合、Entity Framework は、.edmx ファイルおよび関連するクライアント クラスを Azure SQL データベース から作成できません。モデルおよびマッピング ファイルを生成するには、SQL Server のローカル インスタンスに接続する必要があります。ただし、モデル ファイルとマッピング ファイルが作成されれば、Entity Framework は Microsoft Azure SQL データベースに接続するようになります。

  1. ソリューション エクスプローラー[SchoolApplication] を右クリックし、[追加] をポイントして、[新しい項目] をクリックします。

  2. [WCF データ サービス] を選択し、名前に「SchoolDataService.svc」を入力して、[追加] をクリックします。

  3. SchoolDataService.svc.cs または SchoolDataService.svc.vb で、データ サービスを定義するクラスに記述されている "/* TODO: put your data source class name here */" というコメントを、データ モデルのエンティティ コンテナーの型 (この場合は SchoolEntities) に置き換えます。クラス定義は、次のようになっている必要があります。

  4. InitializeService 関数のプレースホルダー コードを次のコードで置き換えます。CourseDepartment、および Person の各エンティティへのアクセスを許可するためのコードです。

  1. ソリューション エクスプローラーでソリューションを右クリックし [追加] をポイントして、[新しいプロジェクト] をクリックします。

  2. [新しいプロジェクトの追加] ダイアログ ボックスの [プロジェクトの種類] ペインで [クラウド サービス] をクリックします。名前として「SchoolSite」を入力し、[OK] をクリックします。

  3. [新しいクラウド サービス プロジェクト] ダイアログ ボックスで、[クラウド サービス ソリューション] ペインに [ASP.NET Web ロール] を追加し、[OK] をクリックします。

  4. Default.aspx のソースを次のコードで置き換えます。

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1">
        <div>
        
            <asp:DropDownList ID="peopleList" runat="server" 
                onselectedindexchanged="peopleList_SelectedIndexChanged"
        AutoPostBack="True">
            </asp:DropDownList>
            <br />
            <br />
            <asp:Label ID="infoLabel" runat="server"></asp:Label>
            <br />
            
        
        </div>
        </form>
    </body>
    </html>
    

    これで、peopleList という名前のドロップダウン リストと、infoLabel という名前の Label コントロールが作成されます。

  5. F6 キーを押して、アプリケーションをビルドします。

  6. ソリューション エクスプローラーで Web ロール プロジェクトを右クリックし、[サービス参照の追加] をクリックします。

  7. [サービス参照の追加] ダイアログ ボックスで、[探索] をクリックします。[サービス] ペインに SchoolDataService.svc が表示されます。名前として「SchoolServiceReference」を入力し、[OK] をクリックします。これで、データ サービス リソースにアクセスするデータ クラスを含んだファイルが追加されます。

  1. Default.aspx.cs または Default.aspx.vb で、次の using ステートメント (Visual Basic では Imports) を追加します。

  2. 部分クラスに次の宣言を追加します。DataServiceContext と、データ サービスの URI ([サービス参照の追加] ダイアログ ボックスの [アドレス] フィールドに表示されていた URI) に対応します。

  3. Page_Load メソッドに次のコードを追加します。データ サービス コンテキストをインスタンス化し、ドロップダウン リストにデータ サービスからの情報を読み込みます。

  4. Default.aspx のデザイン ビューで、ドロップダウン リストをダブルクリックし、peopleList_SelectedIndexChanged イベントを追加します。

  5. peopleList_SelectedIndexChanged イベントに次のコードを追加します。選択された人物に基づいて、Label コントロールの値が設定されます。

  1. How To: Migrate a Database by Using Scripts」に書かれている手順に従って、School データベースを Azure SQL データベース に移行します。

  2. SchoolApplication プロジェクトの Web.config ファイルを開きます。実際の Azure SQL データベース に合わせて接続文字列を変更します。

  3. ソリューション エクスプローラーで、WebRole1 プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] を選択します。

  4. F5 キーを押して、アプリケーションを実行します。

関連項目

表示:
© 2014 Microsoft