ADO.NET エンティティ・フレームワーク (ADO.NET Entity Framework) 入門 (1)
ADO.NET Entity Framework (エンティティ・フレームワーク)
エンティティ・フレームワークとは?
マイクロソフトが .NET Framework 3.5 で導入した、O/R マッピング (Object Relational Mapping) 手法の一つということが出来ます。
従来の O/R マッピングでは、テーブルに対応するクラスを表現するためにコードを大量生成したり、属性を設定したりと、様々なアプローチが行われてきました。 (私もあるツールを利用して、コードを生成する方法を採用したことがありましたが、そのときはメンテナンスが非常に大変でした)
今回紹介する ADO.NET EF では XML (edmx) によって、概念モデル (csdl)、マッピング (msl)、ストレージ (ssdl) 情報を表現できるようにしてあります。
入手方法
Visual Studio 2008 SP1 をインストールすると、利用可能になります。
デモ
抽象的な話をしてもわかりにくいので、はじめにどれだけコードを書くのが簡単になるか見てください。
(MS お決まりのサンプルデータベースである) Northwind の Contacts テーブルから Contact 情報を抽出するデモをご覧ください。
このデモで使用しているコードは以下の通りです。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace EFTest1 { class Program { static void Main( string[] args ) { using ( var context = new EFTest1.NorthwindEntities() ) { var contacts = from c in context.Customers where c.ContactName.StartsWith("S") select c; foreach ( var contact in contacts ) { Console.WriteLine( contact.ContactName ); } } } } }
この例ではコンテキストから LINQ を利用して、簡単に情報を取得するデモを示しました。
ここで、登場する NorthwindEntities クラスは、このフレームワークによって自動的に生成されています。