WCF Data Servicesを使用すると、アプリケーションで Open Data Protocol (OData) サービスを作成して使用できます。 OData は、URI でアドレス指定可能なリソースとしてデータを公開します。これにより、表現状態転送 (REST) のセマンティクス 、特に GET、PUT、POST、DELETE の標準 HTTP 動詞を使用してデータにアクセスおよび変更できます。 詳細については、「ASP.NET 動的データ コンテンツ マップ (https://go.microsoft.com/fwlink/?LinkId=199029)、WCF Data Services (https://go.microsoft.com/fwlink/?LinkId=199030)、および WCF REST スターター キットの開発者ガイド (https://go.microsoft.com/fwlink/?LinkId=199031)」を参照してください。
このトピックは、次のセクションで構成されています。
WCF データ サービスの追加
このチュートリアルは、動的データ Web の動的データ Web チュートリアルに基づいています。 Visual Studio テンプレートを使用して WCF Data Service を作成するには、次の手順に従います。
ソリューション エクスプローラーから、プロジェクト名 DynamicData を右クリックします。 [新しい項目の追加] ダイアログ ボックスが表示されます。
[ インストールされているテンプレート] の左側のウィンドウで、[ Visual C#] を選択します。
中央のウィンドウで、[ WCF Data Service] を選択します。
[ 名前 ] ボックスに、データ サービスの名前を入力します。 たとえば、 WcfDataServiceDB2.svc という名前を入力し、[ 追加] をクリックします。
重要
リソースまたは関連付けにアクセスする前に、リソースへのアクセスを明示的に有効にする必要があります。 サービスに関連付けられているエンティティ データ モデル内のすべてのリソースへの読み取りおよび書き込みアクセスを有効にするには、InitializeService メソッドを見つけて、例に示されているものと一致していることを確認します。
WCF データ サービスの構成
WcfDataServiceDB2.cs ファイルで、コード コメント
/* TODO: put your data source class name here */
を にSAMPLEModel.SAMPLEEntities
置き換えます。public class WcfDataServiceDB2 : DataService<SAMPLEModel.SAMPLEEntities>
次の手順では、Data Service によって公開されるエンティティへのアクセスを許可します。 既定では、すべてのエンティティ セットへのアクセスは許可されません。 エンティティ セットごとにアクセスを許可する必要があります。
WcfDataServiceDB2.cs ファイルで、構成を含むコードのコメントを解除します。SetEntitySetAccessRule。 MyEntitySet をアスタリスク (*) に置き換え、AllRead を All に置き換えます。
using System; using System.Data.Services; using System.Data.Services.Common; using System.Collections.Generic; using System.Linq; using System.ServiceModel.Web; public class WcfDataServiceDB2 : DataService<SAMPLEModel.SAMPLEEntities> { // This method is called only once to initialize service-wide policies. public static void InitializeService(DataServiceConfiguration config) { // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc. // Examples: config.SetEntitySetAccessRule("*", EntitySetRights.All); // config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All); config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; } }
[ ファイル ] メニューの [ WcfDataServiceDB2.cs の保存] をクリックします。
ソリューション エクスプローラーで、[WcfDataServiceDB2.svc] を右クリックし、[スタート ページとして設定] を選択します。
WCF Data Service で使用するインターネット エクスプローラーを構成する
WCF Data Service を RSS フィードとして表示するようにインターネット エクスプローラーを構成するには、次の手順に従います。
[ ツール ] メニューの [インターネット オプション] をクリックし、[ コンテンツ] をクリックします。
[インターネット オプション] ダイアログ ボックスの [コンテンツ] ウィンドウが表示されます。
[フィードと Web スライスの設定] をクリックします。 [フィード読み取りビューを有効にする] チェック ボックスをオフにして、[OK] をクリックします。
WCF データ サービスのテスト
作成した WCF Data Service をテストするには、次の手順に従います。
[ デバッグ ] メニューの [ デバッグの開始] をクリックします。 デバッグを有効にするかどうかを確認するメッセージが表示されたら、[OK] をクリック します。 インターネット エクスプローラーには、WCF データ サービスが表示されます。
OData は、URI でアドレス指定できるリソースとしてデータを公開します。 リソース パスは、Entity Data Model のエンティティとリレーションシップの規則に基づいて構築されます。 このモデルでは、エンティティは、アプリケーション ドメイン内のデータの運用単位 (DEPARTMENT や EMPLOYE など) を表します。
[インターネット エクスプローラー] に、データ サービスを介して DB2 テーブルからすべてのレコードを返す URI を入力します。
OData では、エンティティ型のインスタンスを含むエンティティ セットとしてエンティティ リソースのアドレスを指定します。 たとえば、URI
http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders
は、CustomerID 値が ALFKI の顧客に関連する Northwind データ サービスからのすべての注文を返します。http://localhost:36651/DynamicData/WcfDataServiceDB2.svc/DEPARTMENTs
データベース レコードの表示が完了したら、ブラウザーを閉じます。