使い方が楽になったADO.NET Entity Framework
Entity Frameworkとはエンティティ(データモデル)を定義し、概念アプリケーションモデルに対するプログラミングをすることで、アプリケーション側でデータベース構造を意識せずにエンティティ経由でデータベースへアクセスするための仕組みです。
本稿で詳細は取り上げませんので、@ITの記事『.NETの新データアクセス・テクノロジ「ADO.NET Entity Framework」』などを参照してください。
VS2010 Beta 2での大きな変更点は次のとおりです。
- 生成されたオブジェクトの名前を複数化または単数化オプションの追加
- モデルからデータベースを生成
- ComplexTypeのデザイナからの設定が可能
これらについて順に追ってみてみましょう。
生成されたオブジェクトの名前を複数化または単数化オプションの追加
例えば複数系で名称づけられているテーブル名(例:books)からエンティティを単数系(例:book)で定義したい場合に自動変換してくれるのがこの機能です。
VS2010 Beta 2を起動後、[ファイル]-[新規作成]-[プロジェクト]より、新しいプロジェクトダイアログで左側のインストールされたテンプレート欄のWebを選択し、[Empty ASP.NET Web Application]を選択します。適当なプロジェクト名(ここではWebApplication5)を入力後、[OK]ボタンを押します。
ソリューションエクスプローラの、WebApplication5で右クリックをし、[追加]-[新しい項目]を選択します。次に、新しい項目の追加ダイアログのインストールされたテンプレート欄からデータを選択し、「ADO.NET Entity Data Model」を指定して、適当なファイル名(ここではModel1.edmx)を入力後、[追加]ボタンをクリックします(図10)。
すると、図11のようなEntity Data Modelウィザードが表示されるので、データベースから生成を選択し、[次へ]をクリックします。
続いて、アプリケーションがデータベースへの接続に使用するデータ接続で適当なデータベース(ここでは[コンピュータ名].SampleDb.dbo)を指定し、[次へ]をクリックします(図12)。
ここでは図13のような4つのテーブルをもつデータベースを前提に説明します。
- authors
- books
- Employees
- Jobs
次の画面ではモデルに含めるデータベースオブジェクトを指定します。図14でオレンジ色で囲まれている「生成されたオブジェクトの名前を複数化または単数化する」にチェックをいれて、[完了]をクリックします(図14)。
すると、Model1.edmx上に表示されたテーブル名が単数になっていることが確認できます(図15)。
また、bookオブジェクトのプロパティではエンティティセット名はbooksで、名前はbookになっていることが確認できます(図16)。
これにより、オブジェクト一つ一つに対して、名称の修正を手作業でしなければいけなかったVS2008での開発に比べると効率向上が期待できます。