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

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

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

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

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

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

複数のテーブルへマッピングした際のEntity Data Model

今回の場合のEntity Data Modelはリスト7のように定義をすることになる。では、このEntity Data Modelに対してクエリーを行ってみよう。リスト8にCustomerWestにデータを追加した例を紹介する。

このプログラムで扱っているのが、Entity Data Modelで定義したCustomer型のオブジェクトであることに注目してほしい。CustomerWestテーブルとCustomerEastテーブルは、概念モデルとして意味的に同じCustomer型として扱うようにEntity Data Modelを作成した。

したがって、プログラム上ではテーブル(CustomerWest、CustomerEast)を意識する必要はなく、あくまでも扱う対象はCustomer型のオブジェクトになる。そしてAddObjectを行うタイミングで、はじめてどちらのエンティティにデータを追加するべきかを意識すればよい。

なお、このサンプルプログラムは以下からダウンロードできるので、興味のある方はぜひ確認いただきたい。

サンプルプログラム
ZIPファイル Demo_Multiple.zip (ZIPファイル/35.9KB)

リスト7:複数のテーブルへマッピングした際のEntity Data Model
リスト7:複数のテーブルへマッピングした際のEntity Data Model
(画像をクリックすると別ウィンドウに拡大図を表示します)

リスト8:CustomerWestにデータを追加した例
static void Main(string[] args)
{
    using (MESTDemoEntities objCtx = new MESTDemoEntities())
    {
        Customer customerWest = new Customer();
        customerWest.CustomerId = objCtx.CustomerWest.Count<Customer>() + 1;
        customerWest.Name = "Customer West " + customerWest.CustomerId.ToString();

        objCtx.AddObject("CustomerWest", customerWest);
        objCtx.SaveChanges();
    }
}


最後に

本連載ではADO.NET Entity Frameworkの基本的な内容をVisual Studio 2008を使用した開発手法を通して紹介してきた。LINQ同様、ADO.NET Entity Framework並びにEntity Data Modelからは、数多くの表現手法や多彩なクエリー手法が提供されている。そしてこれらは今後も開発者の方々のフィードバックを得て改良されていくだろう。

ぜひ一度動作を確認していただき、評価いただければ幸いである。


前のページ  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