モデルとマッピングの生成

Entity Framework のアプリケーションとサービスは、XML ベースの言語で表現されるモデル情報とマッピング情報に基づいています。

CSDL はアプリケーション データを概念モデルのエンティティとリレーションのセットとして表し、Entity Data Model を実装したものです。 ストレージ モデルは SSDL で表現され、データ ストアのスキーマを表します。 2 つのモデル間のマッピングは MSL で表現されます。

アプリケーションの CSDL、SSDL、および MSL コンテンツは ADO.NET Entity Data Model Tools による自動生成が可能です。 Entity Data Model Wizard はモデルとマッピングの情報のほかに、既存のデータベース内のデータ クラスも生成します。 その後、Entity Data Model Designer (エンティティ デザイナー) を使用して、モデルやマッピングの情報をグラフィカルに変更できます。 または、エンティティ デザイナーで概念モデルをグラフィカルに作成してから、Generate Database Wizard を使用して、概念モデルをサポートするストレージ モデル、マッピング、データ クラス、データベースなどを自動生成できます。 どちらの状況でも、基になるデータベースが変更されると、Update Model Wizard を使用してモデルとマッピングの情報を更新できます。

EDM ジェネレーター (EdmGen.exe) は、データ ソース内のエンティティとテーブル間の一対一のマッピングで単純な概念モデルを生成できるコマンドライン ツールです。 EdmGen.exe を使用して、概念モデルを検証し、モデル内のエンティティ型に基づくデータ クラスを生成することもできます。 バージョン 3.5 Service Pack 1 (SP1) 以降、EdmGen.exe は、.NET Framework に含まれている Entity Framework ランタイム コンポーネントの一部になっています。

注意事項

以下の検討事項は、Entity Data Model ツールを使用して、既存のデータベースから概念モデルを生成する場合に該当します。

  • すべてのエンティティにはキーが必要です。 主キーのないテーブルがデータベースに存在すると、Entity Data Model ツールは対応するエンティティでキーを推論します。 さらに、Entity Data Model ツールは、エンティティのデータを読み取り専用にするストア スキーマで DefiningQuery 要素を生成します。 このエンティティ データを更新可能にするには、生成されたキーが有効なキーであることを確認し、DefiningQuery 要素を削除する必要があります。

  • 外部キーのみが含まれ、データベース内の 2 つのテーブル間の多対多のリレーションシップを表すテーブル (純粋結合テーブルとも呼ばれる) は、対応するエンティティが概念モデルにありません。 Entity Data Model ツールがそのようなテーブルを検出すると、そのテーブルは、エンティティではなく多対多のアソシエーションとして概念モデルで表現されます。 この動作の例が、School モデルの CourseInstructor アソシエーションです。 詳細については、「School .edmx ファイルの生成 (Entity Framework クイック スタート)」を参照してください。

School モデル

この「はじめに (Entity Framework)」セクションのトピックでは、School というサンプル データベースを参照します。 SQL Server のインスタンスで School データベースを生成するスクリプトについては、「School サンプル データベースの作成 (Entity Framework クイック スタート)」を参照してください。

School には次のテーブルがあります。

  • Course

  • StudentGrade

  • CourseInstructor

  • Department

  • OfficeAssignment

  • OnlineCourse

  • OnsiteCourse

  • Person

このサンプル データベースは、Entity Data Model ツールでサポートされている多くの複雑なモデリング シナリオをハイライトしています。 サンプルを実行してサンプルの動作状態を確認できるように、スクリプトからテーブル間のリレーションシップが作成され、サンプル データが挿入されます。 次に、ADO.NET Entity Data Model Designer に表示される School モデルを示します。

エンティティ デザイナーに表示された School EDM

参照

概念

概念モデルからストレージ モデルへのマッピング

その他のリソース

Entity Framework の構成 (Entity Framework タスク)
はじめに (Entity Framework)
Entity Data Model Tools
CSDL、SSDL、および MSL 仕様