このトピックでは、WCF Data Services を使用して、Northwind サンプル データベースに基づいてデータ サービスを作成する方法を示します。このサンプル データベースは、インターネット インフォメーション サービス (IIS) 上で動作する ASP.NET Web アプリケーションによってホストされます。 同じ Northwind データ サービスを ASP.NET 開発サーバーで実行する ASP.NET Web アプリケーションとして作成する方法については、「WCF Data Services クイック スタート」を参照してください。
注 : |
|---|
| Northwind データ サービスを作成するには、ローカル コンピューターに Northwind サンプル データベースをインストールしておく必要があります。このサンプル データベースをダウンロードするには、ダウンロード ページ「SQL Server 用サンプル データベース」を参照してください。 |
このトピックでは、Entity Framework プロバイダーを使用してデータ サービスを作成する方法を示します。 その他のデータ サービス プロバイダーを利用することもできます。 詳細については、「データ サービス プロバイダー (WCF Data Services)」を参照してください。
サービスを作成した後に、データ サービス リソースへのアクセスを明示的に提供する必要があります。 詳細については、「方法: データ サービスへのアクセスを有効にする (WCF Data Services)」を参照してください。
IIS 上で実行する ASP.NET Web アプリケーションを作成するには
Visual Studio の [ファイル] メニューで、[新規作成]、[プロジェクト] の順に選択します。
[新しいプロジェクト] ダイアログ ボックスで、プログラム言語として [Visual Basic] または [Visual C#] のいずれかを選択します。
[テンプレート] ペインで、[ASP.NET Web アプリケーション] を選択します。 メモ : Visual Studio Web Developer を使用する場合は、新しい Web アプリケーションではなく、新しい Web サイトを作成する必要があります。
プロジェクトの名前として「NorthwindService」を入力します。
[OK] をクリックします。
[プロジェクト] メニューで [NorthwindService のプロパティ] を選択します。
[Web] タブで [ローカル IIS Web サーバーを使用する] を選択します。
[仮想ディレクトリの作成]、[OK] の順にクリックします。
コマンド プロンプトで次のコマンドを実行します。
"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -iこれにより、コンピューターに Windows Communication Foundation (WCF) が登録されます。
SQL Server Management Studio または sqlcmd.exe ユーティリティを使用して、Northwind データベースがアタッチされた SQL Server インスタンスに対して次の Transact-SQL コマンドを実行します。
CREATE LOGIN [NT AUTHORITY\NETWORK SERVICE] FROM WINDOWS; GOこれにより、IIS の実行に使用される Windows アカウントに対して、SQL Server インスタンスのログインが作成されます。 IIS は、これを使用して SQL Server インスタンスに接続できるようになります。
Northwind データベースをアタッチして、次の Transact-SQL コマンドを実行します。
USE Northwind GO CREATE USER [NT AUTHORITY\NETWORK SERVICE] FOR LOGIN [NT AUTHORITY\NETWORK SERVICE] WITH DEFAULT_SCHEMA=[dbo]; GO ALTER LOGIN [NT AUTHORITY\NETWORK SERVICE] WITH DEFAULT_DATABASE=[Northwind]; GO EXEC sp_addrolemember 'db_datareader', 'NT AUTHORITY\NETWORK SERVICE' GO EXEC sp_addrolemember 'db_datawriter', 'NT AUTHORITY\NETWORK SERVICE' GOこれにより、新しいログインに権限が付与され、IIS は Northwind データベースに対してデータの読み取りおよび書き込みを行うことができるようになります。
データ モデルを定義するには
ソリューション エクスプローラーで、ASP.NET プロジェクトの名前を右クリックし、[新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで [ADO.NET エンティティ データ モデル] を選択します。
データ モデルの名前として「Northwind.edmx」を入力します。
エンティティ データ モデル ウィザードで、[データベースから生成] を選択し、[次へ] をクリックします。
次のいずれかの手順を実行し、データ モデルをデータベースに接続してから [次へ] をクリックします。
データベース接続がまだ構成されていない場合は、[新しい接続] をクリックして新しい接続を作成します。 詳細については、「方法: SQL Server データベースへの接続を作成する」を参照してください。 この SQL Server インスタンスには、Northwind サンプル データベースがアタッチされている必要があります。
または
Northwind データベースに接続するようにデータベース接続が既に構成されている場合は、一覧からその接続を選択します。
ウィザードの最終ページで、データベース内のすべてのテーブルのチェック ボックスをオンにし、ビューおよびストアド プロシージャのチェック ボックスをオフにします。
[完了] をクリックして、ウィザードを終了します。
注 :この生成されたデータ モデルは、エンティティ型の外部キー プロパティを公開します。Visual Studio 2008 を使用して作成したデータ モデルには、これらの外部キー プロパティが含まれません。そのため、Visual Studio 2008 を使用して作成された Northwind データ サービスにアクセスしようとする前に、このバージョンの Northwind データ サービスにアクセスするために作成されたクライアント アプリケーションのクライアント データ サービス クラスを更新する必要があります。
データ サービスを作成するには
ソリューション エクスプローラーで、ASP.NET プロジェクトの名前を右クリックし、[新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[ADO.NET Data Service] を選択します。
サービスの名前として「Northwind」を入力します。
Visual Studio で新しいサービスの XML マークアップおよびコード ファイルが作成されます。 既定では、コード エディターのウィンドウが開きます。 ソリューション エクスプローラーでは、このサービスに Northwind という名前が付き、拡張子は .svc.cs または .svc.vb になります。
データ サービスのコードで、データ サービスを定義するクラスの定義にあるコメント
/* TODO: put your data source class name here */をデータ モデルのエンティティ コンテナーである型 (この場合はNorthwindEntities) で置き換えます。 クラス定義は次のようになります。Public Class Northwind Inherits DataService(Of NorthwindEntities)public class Northwind : DataService<NorthwindEntities>