アソシエーション型 (アソシエーションとも呼ばれます) は、Entity Data Model (EDM) のリレーションシップを記述するための基本的な構成要素です。 概念モデルでは、関連付けは 2 つの エンティティ型 ( Customer や Orderなど) 間のリレーションシップを表します。 アプリケーションでは、関連付けのインスタンスは、特定の関連付け ( Customer のインスタンスと Orderのインスタンスの間の関連付けなど) を表します。 アソシエーション インスタンスは、 アソシエーション セットに論理的にグループ化されます。
関連付け定義には、次の情報が含まれています。
ユニークな名前。 (必須)
リレーションシップ内のエンティティ型ごとに 1 つずつ、2 つの 関連付けは終了します。 (必須)
注
関連付けは、2 つ以上のエンティティ型間のリレーションシップを表すことはできません。 ただし、関連付けでは、関連付けの終了ごとに同じエンティティ型を指定することで、自己関係を定義できます。
参照整合性制約。 (省略可能)
各アソシエーション エンドでは、アソシエーションの一方の端に存在できるエンティティ型インスタンスの数を示すアソシエーション エンドの多重度 を指定する必要があります。 アソシエーションエンドの多重度には、1 (1)、0 または 1 (0..1)、もしくは多数 (*) の値を指定できます。 関連付けの一方の端にあるエンティティ型インスタンスは、エンティティ型で公開されている場合は 、ナビゲーション プロパティ または外部キーを介してアクセスできます。 詳細については、「 エンティティ データ モデル: 外部キー」を参照してください。
例
次の図は、 PublishedBy と WrittenByの 2 つの関連付けを持つ概念モデルを示しています。
PublishedBy アソシエーションのアソシエーション End は Book および Publisher のエンティティ型です。
Publisher端の多重度は 1 であり、Bookエンドの多重度は多数 (*)であり、発行元が多数の書籍を発行し、1 つの書籍が 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>