Entity Data Model の生成
エンティティ フレームワーク アプリケーションおよびサービスは、エンティティ データ モデル (EDM) に基づいています。このモデルは、定義済みのデータ ソースにマップされるエンティティとリレーションシップのセットとしてアプリケーション データを表します。EDM は、エンティティとリレーションシップ、論理モデルのスキーマを表すストレージ モデル、および前者 2 つのマッピングとして表現される概念モデルから構成されています。プロジェクトの開発段階は概念モデルから始まり、その概念モデルから論理モデルが派生します。
開発者が既存のデータベースから エンティティ データ モデル を抽出できるように、エンティティ フレームワーク には、EDM の生成、EDM の検証、概念モデルに基づいたプログラミング可能なクラスの作成を実行するための一連のツールが提供されています。EDM ジェネレータ (EdmGen.exe) コマンド プロンプト ユーティリティを使用すると、データ ソースのエンティティとテーブルを一対一でマッピングする単一のモデルを生成できます。EdmGen.exe を使用して、エンティティ型に基づいたデータ クラスを生成し、EDM を検証することもできます。.NET Framework 3.5 Service Pack 1 (SP1) で、EdmGen.exe は エンティティ フレームワーク ランタイム コンポーネントの一部になっています。
Visual Studio 2008 SP1 には、統合された一連の エンティティ データ モデル ツールが含まれています。このツールによって、データ ソースから選択されるオブジェクトを含んだモデルが生成されます。その後、アプリケーションが求める概念モデルを実現するために、Entity Data Model Designer で概念モデルとマッピングを変更することができます。詳細については、「Entity Data Model ツール」を参照してください。
注意事項
EDM を生成する際は、次の点について注意してください。
すべてのエンティティにはキーが必要です。主キーのないテーブルがデータベースに存在すると、EDM ツールは対応するエンティティでキーを推論します。さらに EDM ツールは、エンティティのデータを読み取り専用にするストア スキーマで DefiningQuery 要素を生成します。このエンティティ データを更新可能にするには、生成されたキーが有効なキーであることを確認し、DefiningQuery 要素を削除する必要があります。
テーブルは、データベース内の 2 つのテーブル間の多対多のリレーションシップには、概念スキーマにおける等価のエンティティがあることを表します。EDM ツールによって外部キーである 2 つの列以外に列のないテーブルが発見されると、マッピング テーブルは、エンティティではなく多対多のアソシエーションとして概念スキーマで表現されます。この動作の例が、School モデルの CourseInstructor アソシエーションです。詳細については、「School Entity Data Model の生成 (Entity Framework クイック スタート)」を参照してください。
このリリースで エンティティ データ モデル ツールがサポートするのは、既存のデータ ソースに基づいた EDM の自動生成のみです。リレーショナル データベースなど、概念モデルに基づいたデータ ソースを自動的に生成することはできません。
School モデル
この「入門のためのチュートリアル」のセクションのトピックでは、School というサンプル データベースを参照します。SQL Server で School データベースを生成するスクリプトについては、「School サンプル データベースの作成 (Entity Framework クイック スタート)」を参照してください。
School には次のテーブルがあります。
Course
CourseGrade
CourseInstructor
Department
OfficeAssignment
OnlineCourse
OnsiteCourse
Person
このサンプル データベースでは、Entity Data Model ツールがサポートする多くの複雑なモデリング シナリオが強調表示されています。サンプルを実行してサンプルの動作状態を確認できるように、スクリプトからテーブル間のリレーションシップが作成され、サンプル データが挿入されます。次に、ADO.NET Entity Data Model Designer に表示される School EDM を示します。
参照
概念
概念モデルからストレージ スキーマへのマッピング
Entity Framework のデータ モデリング
その他のリソース
Entity Framework の構成 (Entity Framework タスク)
はじめに (Entity Framework)
Entity Data Model ツール
EDM 仕様
スキーマおよびマッピング スキーマ (Entity Framework)