次世代データアクセステクノロジー
第4回:ADO.NET Entity Frameworkによるデータアクセス実装方法
著者:マイクロソフト 小高 太郎
公開日:2008/1/28(月)
開発環境の準備
ADO.NET Entity Frameworkで開発を行うためには、「Visual Studio 2008英語版」「SQL Server 2005(Express Editionで可能)」「ADO.NET Entity Framework Beta3」「ADO.Net Entity Framework Tools Dec 07 CTP」が必要となる(2008年1月時点)。
Visual Studio 2008は2008年2月よりパッケージの販売が行われる。したがって、開発環境を構築したい場合は、製品版もしくは無償で提供されているVisual Studio 2008 Express Edition(http://www.microsoft.com/express/
download/)でも行うことが可能である。またSQL Server Express Editionについては、Visual Studio 2008のインストールにより同時にインストールされるため、それをそのまま使用する(ダウンロードセンターより別途入手してもよい)。
ADO.NET Entity Framework Beta3は
「http://www.microsoft.com/downloads/details.aspx?FamilyId=15DB9989
-1621-444D-9B18-D1A04A21B519&displaylang=en」から、
ADO.Net Entity Framework Tools Dec 07 CTPは
「http://www.microsoft.com/downloads/details.aspx?FamilyId=D8AE4404
-8E05-41FC-94C8-C73D9E238F82&displaylang=en」執筆にあたってはVisual Studio 2008 Beta2の英語版で行っている。
Visual Studio 2008のインストールは画面の指示に従って行う。また、ADO.NET Entity Framework Beta3と、ADO.Net Entity Framework Tools Dec 07 CTPも画面の指示に従ってインストールすれば、特に問題ないであろう(今回はページの関係上割愛させていただく)。
図2:Entity Designer
(画像をクリックすると別ウィンドウに拡大図を表示します)
Entity Data Model作成手順
では、実際にEntity Data Modelを作成してみよう。まず、Visual Studio 2008 英語版を起動し、「File → New → Project」より、ConsoleApplicationを選択する。言語はC#を使用する事とする。
起動するとスタートページが表示されるので、「Project → AddNewItem」を実行し、表示された「AddNewItem」ウィンドウで、「ADO.NET Entity Data Model」を選択する。これにより、edmxファイルがプロジェクトに追加される。これがEntity Data Modelのベースになるものである。
ウィザードが実行されたら、Generate from databaseを選択する。Entity Data Modelは、このようにデータベースを起点に作成する事ができる。
次にデータベースを選択する。今回はSQL Server 2000に付属されたサンプルデータベースであるpubsを選択する
(pubsは「http://msdn2.microsoft.com/ja-jp/library/ms143221.aspx」からダウンロードする)。
最後にEntity Data Modelに追加するデータベースオブジェクトを選択する。今回はテーブルをすべて選択する。
作成されたedmxを開くとデザイナー(Entity Designer)が表示される(図2)。今回はデータベースを起点にテーブルをすべて含めた形でEntity Data Modelを作成した。そのため、この時点ではビジネスエンティティとテーブルの形が1対1になったEntity Data Modelが作成されている。
ここでは、この後に説明するコードをわかりやすいものにしたいのでこれでEntity Data Modelを完成としてプログラムを続けていく。この後で変更を加え、ビジネスエンティティとテーブルを異なる形にすることも多いであろう。例えば、テーブルは2つだがビジネスエンティティは1つにしたい場合などである(この例は第5回で解説)。
その場合、Entity Designerを使用して変更するか、もしくはedmxをXMLとして開き、CSDL、SSDL、MSLを直接変更する。edmxをXMLとして開くには、ソリューションエクスプローラーのedmxを右クリック、Open With…を実行し、その後表示されるダイアログから、XML Editorを選択すればよい。
なおADO.Net Entity Framework Tools Dec 07 CTPから提供されるツールは、ウィザードやデザイナーを提供する「Entity Designer」、CSDL側から見たマッピング機能を提供する「Entity Mapping」、Entity Data Modelをツリー形式で確認できる「Entity Model Browser」である(これらはVisual Studio 2008に統合される)。 次のページ