このタスクでは、Northwind サンプル データベースに基づいて、Open Data Protocol (OData) フィードを公開するサンプル データ サービスを作成します。 この作業に必要な基本手順は次のとおりです。
ASP.NET Web アプリケーションを作成します。
Entity Data Model ツールを使用して、データ モデルを定義します。
データ サービスを Web アプリケーションに追加します。
データ サービスへのアクセスを有効にします。
![]() |
---|
このタスクを完了するときに作成する ASP.NET Web アプリケーションは、Visual Studio で提供される ASP.NET 開発サーバー上で実行します。開発時にデータ サービスのテストおよびトラブルシューティングを行いやすくするために、インターネット インフォメーション サービス (IIS) を使用して、データ サービスをホストするアプリケーションを実行することを検討してください。詳細については、「方法: IIS 上で実行する WCF Data Service を開発する」を参照してください。 |
ASP.NET Web アプリケーションを作成するには
Visual Studio の [ファイル] メニューで、[新規作成]、[プロジェクト] の順に選択します。
[新しいプロジェクト] ダイアログ ボックスで、プログラム言語として [Visual Basic] または [Visual C#] のいずれかを選択します。
[テンプレート] ペインで、[ASP.NET Web アプリケーション] を選択します。 メモ : Visual Studio Web Developer を使用する場合は、新しい Web アプリケーションではなく、新しい Web サイトを作成する必要があります。
プロジェクトの名前として「NorthwindService」を入力します。
[OK] をクリックします。
(省略可能) Web アプリケーションに対して特定のポート番号を指定します。 メモ : このクイック スタートの以降の作業では、ポート番号
12345
を使用します。ソリューション エクスプローラーで、作成した ASP.NET プロジェクトの名前を右クリックし、[プロパティ] をクリックします。
[Web] タブを選択し、[ポートを指定する] ボックスの値を
12345
に設定します。
データ モデルを定義するには
ソリューション エクスプローラーで、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>
データ サービス リソースへのアクセスを有効にするには
データ サービスのコードで、
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 アプリケーションにアクセスできるクライアントは、データ サービスによって公開されるリソースにもアクセスできます。運用データ サービスで、リソースへの承認されていないアクセスを防止するために、アプリケーション自身もセキュリティで保護する必要があります。詳細については、「Securing ASP.NET Web Sites」を参照してください。
次の手順
ここでは、Northwind サンプル データベースに基づいて、OData フィードを公開する新しいデータ サービスを作成し、ASP.NET Web アプリケーションへのアクセス許可を持つクライアントからフィードへのアクセスを有効にしました。 次は、Visual Studio からデータ サービスを開始して、Web ブラウザーから HTTP GET 要求を送信して OData フィードにアクセスします。