TOPシステム開発> 第5回:ADO.NET Entity FrameworkにおけるObjectServicesの使用 (2/3)

次世代データアクセステクノロジー」

次世代データアクセステクノロジー

第5回:ADO.NET Entity FrameworkにおけるObjectServicesの使用

著者:マイクロソフト  小高 太郎

公開日:2008/1/29(火)

ObjectServicesにおけるEntity SQL、LINQの使用

Object ServicesはEntity Data Modelを操作する言語として、前述のEntity SQLやLINQ(LINQ to Entity)を使用することも可能である(リスト5、リスト6)。

ここまでの説明ではEntity Data Modelを、主にテーブルとビジネスエンティティが1対1の対応であるものを中心に紹介してきたが、それだけではメリットも見えにくいであろう。そこで最後に、複数のテーブルを1つのエンティティタイプにマップする例を紹介しEntity Data Modelの優位点を実感していただきたいと思う。

リスト5:Object ServicesでEntity SQLを使用した例
リスト5:Object ServicesでEntity SQLを使用した例
(画像をクリックすると別ウィンドウに拡大図を表示します)

リスト6:Object ServicesでLINQ to Entityを使用した例
static void Main(string[] args)
{
    using (pubsEntities pubsContext = new pubsEntities())
    {
        string fname = "Maria";
        var emps = from e in pubsContext.employee
                   where e.fname == fname
                   select e;

        foreach (employee emp in emps)
            Console.WriteLine("{0} - {1}", emp.fname, emp.lname);

        pubsContext.Connection.Close();
    }
}

図1:複数のテーブルを1つのエンティティタイプにマッピング
図1:複数のテーブルを1つのエンティティタイプにマッピング
(画像をクリックすると別ウィンドウに拡大図を表示します)

複数のテーブルへのマッピング

今回は図1のようなスキーマのテーブルを用意した。この2つのテーブルは、フィールドが同じ形であり、同じ性格のデータを管理する。したがって、オブジェクトモデルとしては1つにまとめて設計したいと考えるのが一般的ではないだろうか?

そこで、今回は概念層にCustomerを用意して論理レベルの2つのテーブル(CustomerEast、CustomerWest)をまとめるように設計した(図1)。では実際にプログラムをみてみよう。 次のページ


前のページ  1  2  3  次のページ


マイクロソフト株式会社 小高 太郎
著者プロフィール
マイクロソフト株式会社  小高 太郎
ERP パッケージ開発に携わり、プログラマーからスタート。Microsoft Universityの講師を兼務、その後、SE、PM、管理職の道に進むも、縁あって2007年3月よりデベロッパー エバンジェリストに転身、現在は開発者向けに様々な技術訴求を行うべく活動中。


INDEX
第5回:ADO.NET Entity FrameworkにおけるObjectServicesの使用
  Object Servicesとは?
ObjectServicesにおけるEntity SQL、LINQの使用
  複数のテーブルへマッピングした際のEntity Data Model