アソシエーション型 (Entity Data Model)

アソシエーション型 (アソシエーションとも呼ばれます) は、Entity Data Model (EDM) でリレーションシップを記述するために不可欠な構成要素です。 概念モデルでは、アソシエーションが 2 つのエンティティ型 (CustomerOrder など) の間のリレーションシップを表します。 アプリケーションでは、アソシエーションのインスタンスが特定のアソシエーション (Customer のインスタンスと Order のインスタンスの間のアソシエーションなど) を表します。 アソシエーション インスタンスは、アソシエーション セットに論理的にグループ化されます。

アソシエーションの定義には、次の情報が含まれます。

  • 一意の名前。 (必須)

  • 2 つのアソシエーション End (リレーションシップを構成する各エンティティ型に 1 つずつ)。 (必須)

    Ee382823.note(ja-jp,VS.100).gif注 :
    アソシエーションは、2 つ以上のエンティティ型のリレーションシップを表すことができません。しかし、各アソシエーション End に同じエンティティ型を指定することによって、アソシエーションで自己リレーションシップを定義できます。

  • 参照整合性制約。 (省略可能)

各アソシエーション End には、アソシエーションの 1 つの End に存在できるエンティティ型のインスタンス数を示すアソシエーション End の多重度を指定する必要があります。 アソシエーション End の多重度には、1 (1)、ゼロか 1 (0..1)、または多数 (*) の値を指定することができます。 アソシエーションの 1 つの End にあるエンティティ型のインスタンスには、エンティティ型で公開されている場合、ナビゲーション プロパティまたは外部キーからアクセスできます。 詳細については、「Entity Data Model: 外部キー」を参照してください。

下のダイアグラムは、PublishedBy および WrittenBy という 2 つのアソシエーションの概念モデルを示しています。 PublishedBy アソシエーションのアソシエーション End は Book および Publisher のエンティティ型です。 Publisher End の多重度は 1 (1) で、Book End の多重度は多数 (*) です。これは、出版社が多くの書籍を出版し、書籍は 1 社の出版社により出版されることを示します。

モデル例

ADO.NET Entity Framework では、概念スキーマ定義言語 (CSDL) と呼ばれるドメイン固有言語 (DSL) を使用して概念モデルを定義します。 次の CSDL は、上のダイアグラムに示された PublishedBy アソシエーションを定義しています。

<Association Name="PublishedBy">
      <End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
      <End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
    </Association>

参照

概念

Entity Data Model キーの概念
Entity Data Model