Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

.NET Framework 3.5 SP1で追加されたデータベースアクセステクノロジー

概念モデルに対してプログラミング

Entity Frameworkは、インピーダンス ミスマッチ問題を解決するため、
エンティティを定義し、エンティティ経由でデータベースへアクセスするための手段を提供する技術。

Entity Data Model(EDM)

CSDL、SSDL、および MSL 仕様
http://msdn.microsoft.com/ja-jp/library/vstudio/bb399604.aspx

CSDL

CSDL(Conceptual Schema Definition Language:概念スキーマ定義言語)
概念スキーマ(概念モデル)

MSL

MSL(Mapping Schema Language:マッピング・スキーマ言語)
CSDLとSSDL(モデル間)のマッピング

SSDL

SSDL(Storage Schema Definition Language:ストア・スキーマ定義言語)
ストレージ・スキーマ(ストレージ モデル)

xxx ファースト

モデルファースト

モデル(EDM)からDBMSのスキーマを生成する方法

DBファースト

DBMSのスキーマからモデル(EDM)を生成する方法

コードファースト

(モデルクラスへのデータ構造の定義が、そのままデータベースのテーブル設計となる)

Entity Frameworkマイグレーション

コードファーストのデータモデルクラスの変更をもとに、
既存のデータを残したままデータベースのテーブルを変更する機能。

批判

信任投票

エンプラ領域でのミスマッチ

基幹系システムでは以下の理由でミスマッチと判断されることが多い。

内部実装とその動作がブラックボックス

SQLが、LINQ to Entityのエンジンに生成される形であり、
また、内部実装とその動作がブラックボックスになっているため(※1)
それらが明確にならないと設計、チューニング、問題分析などが困難。

従って(特に日本の)エンタープライズ・アプリケーションでは敬遠されている。
これは、JavaのJava8でJPAでHibernateでJinqが敬遠されるのと≒。

スキーマ構造の変更

RAD開発ツールに特有の、保守性の悪さがある。

(逆に言えば、カスタマイズがなければ、スキーマ構造の変更をモデル(EDM)に同期し、変更に迅速に対応できるとも言える。)

参考

@IT

MSDN


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS