Share via


ADO.NET DataServicesの紹介

こんにちは、こだかです。

TechEdのセッション終了直後にこのブログを書いています。
セッションに参加いただいた方、最終日のセッションにもかかわらず、ありがとうございました。

今回こだかがお話したのは、ADO.NET DataServicesというテクノロジーでした。
このテクノロジーは、データベースに論理階層を重ね、その中でモデル化したエンティティをインターネット内に公開することができるというモノです。

以前からご紹介していますが、実装についてご紹介できていませんでしたので、今回から何回かに分けて、実装方法をご紹介していきたいと思います。

今回は、サービスの作成方法についてご紹介します。

はじめにVisualStudioを起動して新しいWebサイトを作成します。
image

新しい項目の追加よりADO.NET Entity Data Modelを選択します。
今回はHR.edmxと名前をつけておきます。
image

データベースからモデルを作成します
image

適当なDBの接続を指定して、データベースのスキーマを選択します
今回は、テーブル2つを選択します
image

完了を押してEntityDataModelを作成します
この状況はデータベースとテーブルの形が1対1になっていますが、何か変更したい場合はここから手を入れてください。今回はこのままにします。
image

これで、ADO.NET Entity Frameworkを使用できる形になりました。

次に新しい項目の追加より、ADO.NET DataServiceを選択します。
今回は、HRService.svcと名前をつけます。
image

HRService.csに対して、以下のプログラムを入力します。
(赤字の部分が新たに入力したコードです)

using System;
using System.Data.Services;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel.Web;

public class HRService : DataService<HRModel.HREntities>
{
    // This method is called only once to initialize service-wide policies.
    public static void InitializeService(IDataServiceConfiguration config)
    {
        config.SetEntitySetAccessRule("*", EntitySetRights.All);
    }

    // Query interceptors, change interceptors and service operations go here
}

これで、Servicceの完成です。HRService.svcをブラウザで表示としてみましょう。
以下のような結果(EntityDataModelで作成したエンティティの形)が表示されていればOKです。

image

次回はこれを使用したクエリをご紹介いたします。

こだかたろう