第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
次世代データアクセステクノロジー
第1回 LINQとADO.NET Entity Framework
第2回 LINQによるデータアクセス実装
第3回 さまざまなデータソースへのアクセス
第4回 ADO.NET Entity Frameworkによるデータアクセス実装方法
第5回 ADO.NET Entity FrameworkにおけるObjectServicesの使用

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored