![次世代データアクセステクノロジー」](/images/article/common/70X90_20080109.jpg)
次世代データアクセステクノロジー
第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を行うタイミングで、はじめてどちらのエンティティにデータを追加するべきかを意識すればよい。
なお、このサンプルプログラムは以下からダウンロードできるので、興味のある方はぜひ確認いただきたい。
リスト7:複数のテーブルへマッピングした際のEntity Data Model
![リスト7:複数のテーブルへマッピングした際のEntity Data Model](/images/article/0801/9/5/code_2.gif)
(画像をクリックすると別ウィンドウに拡大図を表示します)
リスト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からは、数多くの表現手法や多彩なクエリー手法が提供されている。そしてこれらは今後も開発者の方々のフィードバックを得て改良されていくだろう。
ぜひ一度動作を確認していただき、評価いただければ幸いである。