Northwind データ サービスの作成 (WCF Data Services クイック スタート)
このタスクでは、WCF Data Services を使用し、Northwind サンプル データベースに基づいて Open Data Protocol (OData) フィードを公開する Northwind サンプル データ サービスのローカル バージョンを作成します。このバージョンでは、OData を使用して Northwind データベースのデータを更新することができます。 この作業に必要な基本手順は次のとおりです。
ASP.NET Web アプリケーションを作成します。
Entity Data Model ツールを使用して、データ モデルを定義します。
データ サービスを Web アプリケーションに追加します。
データ サービスへのアクセスを有効にします。
注意
このタスクを完了するときに作成する ASP.NET Web アプリケーションは、Visual Studio で提供される ASP.NET 開発サーバー上で実行します。ASP.NET 開発サーバーは、ローカル コンピューターからのアクセスのみをサポートします。開発時にデータ サービスのテストおよびトラブルシューティングを行いやすくするためにも、インターネット インフォメーション サービス (IIS) を使用して、データ サービスをホストするアプリケーションを実行することを検討してください。詳細については、「方法: IIS 上で実行する WCF Data Service を開発する」を参照してください。
ASP.NET Web アプリケーションを作成するには
Visual Studio で、[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスで、Visual Basic または Visual C# の下の Web テンプレートを選択し、[ASP.NET Web アプリケーション] をクリックします。
注意
Visual Studio Web Developer を使用する場合は、新しい Web アプリケーションではなく新しい Web サイトを作成する必要があります。
プロジェクトの名前として「NorthwindService」を入力します。
[OK] をクリックします。
(省略可能) Web アプリケーションに対して特定のポート番号を指定します。 メモ: このクイック スタートの以降の作業では、ポート番号 12345 を使用します。
ソリューション エクスプローラーで、作成した ASP.NET プロジェクトの名前を右クリックし、[プロパティ] をクリックします。
[Web] タブをクリックし、[ポートを指定する] ボックスの値を 12345 に設定します。
データ モデルを定義するには
ソリューション エクスプローラーで、ASP.NET プロジェクトの名前を右クリックし、[新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで Data テンプレートをクリックし、[ADO.NET エンティティ データ モデル] をクリックします。
データ モデルの名前として「Northwind.edmx」を入力します。
Entity Data Model ウィザードで、[データベースから生成] をクリックし、[次へ] をクリックします。
次のいずれかの手順を実行し、データ モデルをデータベースに接続してから [次へ] をクリックします。
データベース接続がまだ構成されていない場合は、[新しい接続] をクリックして新しい接続を作成します。 詳細については、「方法: SQL Server データベースへの接続を作成する」を参照してください。 この SQL Server インスタンスには、Northwind サンプル データベースがアタッチされている必要があります。
または
Northwind データベースに接続するようにデータベース接続が既に構成されている場合は、一覧からその接続を選択します。
ウィザードの最終ページで、データベース内のすべてのテーブルのチェック ボックスをオンにし、ビューおよびストアド プロシージャのチェック ボックスをオフにします。
[完了] をクリックして、ウィザードを終了します。
注意
この生成されたデータ モデルは、エンティティ型の外部キー プロパティを公開します。Visual Studio 2008 を使用して作成したデータ モデルには、これらの外部キー プロパティが含まれません。そのため、Visual Studio 2008 を使用して作成された Northwind データ サービスにアクセスしようとする前に、このバージョンの Northwind データ サービスにアクセスするために作成されたクライアント アプリケーションのクライアント データ サービス クラスを更新する必要があります。
データ サービスを作成するには
ソリューション エクスプローラーで、ASP.NET プロジェクトの名前を右クリックし、[新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[WCF Data Service] をクリックします。
サービスの名前として「Northwind」を入力します。
Visual StudioVisual 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>
データ サービス リソースへのアクセスを有効にするには
データ サービスのコードで、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);
これにより、承認されたクライアントは、指定したエンティティ セットのリソースに読み取りおよび書き込みアクセスできるようになります。
注意
ASP.NET アプリケーションにアクセスできるクライアントは、データ サービスによって公開されるリソースにもアクセスできます。運用データ サービスで、リソースへの承認されていないアクセスを防止するために、アプリケーション自身もセキュリティで保護する必要があります。詳細については、「WCF Data Services のセキュリティ保護」を参照してください。
次の手順
Northwind サンプル データベースに基づく OData サービスの書き込み可能なローカル バージョンが正常に作成されました。 ASP.NET Web アプリケーションへのアクセス許可を持つクライアントからフィードへのアクセスも有効にしました。 次に、この Northwind データを Windows コントロールにバインドし、更新内容をこの新しい書き込み可能な OData サービスに送信する別のクライアント アプリケーションを作成します:
クライアント アプリケーションで OData フィードをコントロールにバインドする