Entity Framework のデータ モデリング

エンティティ データ モデル (EDM) は、エンティティ リレーションシップ モデルです。EDM では、プログラミング言語やリレーショナル データベースの構造による制約を受けない中立的な形式でデータが定義されます。エンティティおよびリレーションシップの詳細を指定したり、それらをデータ構造として実装したりする際には、EDM スキーマが使用されます。

エンティティとは、アプリケーション ドメインにおいて、データで表す必要のある事柄をいいます。エンティティおよびリレーションシップの例は、標準的な基幹業務 (LOB) アプリケーションにも見られます。LOB アプリケーションのドメインにおけるエンティティとしては、顧客、注文、注文明細、仕入先、製品、販売員、配送業者、請求書などが考えられます。EDM EntityType は、アプリケーション ドメインにおけるエンティティを表すデータ型の仕様です。

リレーションシップは、エンティティ間の論理的な関係をいいます。商品の注文と、その商品を注文をした顧客との論理的な関係などが該当します。顧客には、複数の注文を関連付けることができるため、顧客とその注文との間には、一対多のリレーションシップが存在します。製品と仕入先との間には、多対多のリレーションシップがあります。

エンティティとリレーションシップを定義するプロセスは、非常に複雑になることがあります。LOB アプリケーションにおける商品注文のように基本的なものでさえ、情報量は驚くほど多くなります。たとえば、商品注文には、さまざまな形態があります。店舗での注文もあれば、電話、インターネット、カタログでの注文もあります。EDM では、注文形態ごとの詳細が、XML 構文で概念的に指定されます。注文形態ごとのプロパティや必要な制約は、概念スキーマ上に構築されたデータを使用するアプリケーションへと反映されます。

EDM では、エンティティとそのリレーションシップが、2 つの基本的な型を使用してモデル化されます。

  • EntityType : アプリケーション ドメインのデータ構造の詳細に対する抽象的な仕様。

  • AssociationType : 型と型の論理的な関係。

EDM デザイン スキーマでは、アプリケーションのドメインにおけるエンティティの構造、セマンティック、制約、およびリレーションシップが定義されます。オブジェクト サービスの EDM 実装では、概念スキーマは、ストレージ モデル (通常はデータベース内のテーブル) を表すメタデータを含んだ別のスキーマにマップされます。アプリケーション コードで使用される、プログラミング可能なオブジェクト モデルのクラスは、概念スキーマを使用して生成されます。また、エンティティ フレームワーク では、アプリケーション データを実行時に検証、照会、および更新するために、概念スキーマおよびストレージ スキーマが使用されます。

このセクションのトピック

  • 設計と実装 (EDM)
    EDM を使用したデータ構造の設計における概念上の独立性について説明します。
  • EDM 型の分類
    EDM フレームワークの図および概要を紹介します。

参照

概念

エンティティの実装 (EDM)
アソシエーションの実装 (EDM)
Entity SQL 言語

その他のリソース

EDM 仕様
サンプル アプリケーション (Entity Framework)