.NET Framework 4.5 におけるデータ アクセスの概要 その 3 ~ ADO.NET Entity Framework ~
概要編
応用編
- ADO.NET Entity Framework
- 全体像
- DBファースト、モデルファースト
ADO.NET Entity Framework が登場した背景
リレーショナルデータベースを利用したアプリケーション開発を難しくしている要因として、C#やVB.NET 等をはじめとするオブジェクト指向言語が扱うデータの構造(オブジェクト データモデル)と、データベースが扱う正規化されたデータの構造(リレーショナル データモデル)が異なるという点があります。このことは、インピーダンス ミスマッチ問題として一般的に知られており、アプリケーション開発者はデータモデル間の差異を吸収するためにマッピングコードを実装する必要がありました。加えて保守、管理も考慮すると、昨今のシステムにおける大きな負担になっていると言えます。
ADO.NET Entity Frameworkは、リレーショナルデータモデルとは独立した形で、アプリケーションが使用するデータ(Entity)を概念モデルとして定義し、データ操作することができます。この概念モデルはEntity Data Model(EDM)とよばれており、開発者が柔軟にモデリングすることが可能です。また、ここで作成したEntityはADO.NET 非接続型と同様に、多階層のアプリケーションを開発する場合、オブジェクトとして渡すことが可能でありDTO(Data Transfer Object)として利用することも想定されます。アプリケーションを開発する際には、作成したEDMに対してデータ操作のための実装を行うことになります。
ADO.NET Entity Framework は提供開始から非常に多くのアップデートが行われたため、その一部をご紹介します。
・最新版はNuget経由で入手
https://www.nuget.org/packages/EntityFramework/
・計量なクラスライブラリが提供され6倍以上パフォーマンスが向上
・3つの開発スタイルを提供(データベースファースト、モデルファースト、コードファースト)
・新しいプラットフォームへの対応(Windows ストアアプリ, Windows Phone、 Mono
・RDB以外のストレージへの対応(Azure Table Storageのようなnon-relationalなデータストアへの対応)
・クラウドを意識した接続のリトライ処理と非同期処理
ADO.NET Entity Frameworkを用いることで、開発生産性、及び保守性の向上が期待できます。また、ADO.NET Entity Frameworkは、マイクロソフトの大きな投資対象になっていることも注目すべきです。事実、.NET Framework 3.5 SP1で新たに追加された ADO.NET Entity Frameworkは、NET Framework 7 となり、非常に多くの機能追加、改良が行われています。また、ASP.NET などの新たなテクノロジーのベース技術として採用されていることも注目すべきです。
詳細については、msdn.com/data/ef を参照してください