次世代データアクセステクノロジー
第4回:ADO.NET Entity Frameworkによるデータアクセス実装方法
著者:マイクロソフト 小高 太郎
公開日:2008/1/28(月)
ADO.NET Entity Frameworkと概要モデルとは?
次期ADO.NETである、ADO.NET Entity FrameworkはVisual Studio 2008に新たに加わるデータアクセス技術である(Visual Studio 2008のアップデートとして2008年の前半に予定)。
ADO.NET Entity Frameworkは、「第1回:LINQとADO.NET Entity Framework」の中で、階層化アーキテクチャーのドメイン層を構築する技術として、概念モデルの設計、クエリーを可能にする新しいテクノロジーである点を紹介した。本記事では今回と次回にわたって主に開発面の機能を中心に、プログラムコードを交えながら解説していく。
さて、具体的な開発手法を解説する前に、概念モデルについて触れておこう。
ソフトウェア設計は一般に、概念(ビジネス)、論理・物理(IT技術)とレイヤーを分けて考えるが、従来、この概念に対する定義は、ビジネスモデルの表記を行うことが中心であった。そのため概念を元に論理設計を行う場合、抽象的な概念の定義を論理設計に落とし込む必要があった。
ADO.NET Entity Frameworkは、この概念モデルを論理/リレーショナルデータモデルを抽象化する事によって定義することが可能であり、複雑な概念モデルを記述するために要求される、さまざまな記述方法を取ることができる。
また、Object ServicesおよびEntity Clientと呼ばれる新しいデータプロバイダを通じて、概念モデルに対するクエリーを可能にする機能を提供する。
図1:ADO.NET Entity Framework
Entity Data Model
ADO.NET Entity Frameworkで作成する概念モデルは、Entity Data Modelと呼ばれ、エンティティ同士の関係、継承、複雑型、複数のテーブルへのマップなど、さまざまな表現が可能である。
Entity Data Modelの内部は、ビジネスエンティティおよびリレーションシップを表現する「概念スキーマ定義言語(CSDL:Conceptual Schema Definition Language)」、データベーススキーマを表現する「ストアスキーマ定義言語(SSDL:Store Schema Definition Language)」、CSDLとSSDLをマッピングする「マッピングスキーマ言語(MSL:Mapping Schema Language)」の3種類のXMLによって構成される。
これらのXMLファイルは、手作業で記述する事はもちろん可能であるが、Visual Studio 2008に搭載されるツールを使用し、ビジュアルな形でEntity Data Modelの作成が可能だ。では具体的な手法を紹介したい。 次のページ