設計と実装 (EDM)
エンティティ データ モデル (EDM) を使用するアプリケーション開発者は、プログラミング オブジェクト モデルとストレージ構造間の独立した中間層に存在する概念デザイン スキーマでデータを定義します。その利点は、概念スキーマでエンティティとアソシエーションを設計することによって、データベースのテーブルにとらわれることなく、アプリケーションのシナリオを反映できるという点です。
EDM フレームワークは、概念スキーマで用いられるエンティティとアソシエーションの基本的な型が用意されています。開発者は、こうした基本的な型をアプリケーションのニーズに合わせて拡張できます。EDM の基本的な型およびカスタム拡張機能は、どちらも XML スキーマで定義します。
スキーマとして形式化された設計
EDM の型は、データの論理的な整合性と、ビジネス アプリケーションやテクニカル アプリケーションの制約を保存するスキーマで設計されます。純粋に概念的な設計を用いることで、変更の手間を最小限に、あらゆる場面で構造の置き換えが可能となります。抽象的な仕様が完成したとき、スキーマに定義されたエンティティは、プログラミング可能なオブジェクトのデザイン テンプレートになります。
オブジェクト モデルは、それらが実装されている言語を反映しています。EDM を使ったアプリケーションの設計では、発見のプロセスがコードの構文によって妨げられることはありません。EDM アプリケーションのデータ構造は概念スキーマを使って指定され、設計はアプリケーションのシナリオに基づいています。概念スキーマは、開発のすべての段階で使用されます。
XML スキーマでデータ モデルを設計することには、ストレージ テクノロジにとらわれなくてもよくなるという効果もあります。EDM を用いたアプリケーションは、あらゆるストレージ プラットフォームに適応します。リレーショナル データベースに基づく設計プロセスでは、データベースの正規化が避けられません。EDM に基づく設計であれば、そうした問題の多くが解決されます。
スキーマからのオブジェクト サービスの実装
EDM では、エンティティとリレーションシップが、デザイン スキーマで XML の構文に従って定義されます。このスキーマは、ストレージ モデルを表すメタデータを含んだ別のスキーマにマップされます。アプリケーション コードで使用される、共通言語ランタイム (CLR) のデータ型は、デザイン スキーマから構築されます。スキーマの詳細については、「スキーマ (EDM)」を参照してください。
EDM 仕様に従ってデータ モデルを設計する際は、概念スキーマの作成から開始することも、既存のデータベースから概念スキーマを生成して、従来のシステムをベースにすることもできます。概念スキーマは、直接 XML 構文で作成するか、データベースから生成するかに関係なく、アプリケーションのストレージ構造を表すメタデータにマップできます。マッピングの詳細については、「スキーマおよびマッピング スキーマ (Entity Framework)」を参照してください。
必要な実装作業が完了すると、エンティティ型 (基幹業務アプリケーションであれば、customer 型、order 型、employee 型など) のインスタンスを、アプリケーション コードの中でプログラミング可能なオブジェクトとして宣言できます。概念スキーマで定義された型は、アプリケーション コードによって使用されるデータのプロトタイプです。これらは、マッピング スキーマによって、ストレージとシームレスに対応付けられます。データを照会したり保存したりする際に、SQL のクエリや更新ステートメントを記述する必要はありません。
EDM でエンティティとリレーションシップを定義する方法の詳細については、「Entity Data Model の型」を参照してください。
参照
概念
エンティティとリレーションシップ (EDM)
エンティティの実装 (EDM)
アソシエーションの実装 (EDM)