アソシエーション End
"アソシエーション End" では、アソシエーションの一方の End にあるエンティティ型と、アソシエーションのその End に存在できるエンティティ型のインスタンス数が示されます。 アソシエーション End はアソシエーションの一部として定義され、アソシエーションには必ず 2 つのアソシエーション End が必要です。 ナビゲーション プロパティにより、一方のアソシエーション End から他方のアソシエーション End へのナビゲーションが可能になります。
アソシエーション End の定義には、次の情報が含まれます。
アソシエーションに含まれるエンティティ型の 1 つ。 (必須)
Note
アソシエーションでは、各アソシエーション End に同じエンティティ型を指定することができます。 これにより、自己アソシエーションが作成されます。
アソシエーションの 1 つの End に存在できるエンティティ型のインスタンス数を示すアソシエーション End の多重度。 アソシエーション End の多重度には、1 (1)、ゼロか 1 (0..1)、または多数 (*) の値を指定することができます。
アソシエーション End の名前。 (オプション)。
アソシエーション End に実行する CASCADE ON DELETE などの操作の情報。 (オプション)。
例
下のダイアグラムは、PublishedBy
および WrittenBy
という 2 つのアソシエーションの概念モデルを示しています。 PublishedBy
アソシエーションのアソシエーション End は Book
および Publisher
のエンティティ型です。 Publisher
End の多重度は 1 (1) で、Book
End の多重度は多数 (*) です。これは、出版社が多くの書籍を出版し、書籍は 1 社の出版社により出版されることを示します。
ADO.NET Entity Framework では、概念スキーマ定義言語 (CSDL) と呼ばれるドメイン固有言語 (DSL) を使用して、概念モデルを定義します。 次の CSDL は、上のダイアグラムに示された PublishedBy
アソシエーションを定義します。 各アソシエーション End の型、名前、および多重度は、XML 属性 (それぞれ Type
属性、Role
属性、および Multiplicity
属性) で指定されます。 アソシエーション End に実行する操作に関するオプション情報は、XML 要素 (OnDelete
要素) に指定します。 この場合、出版社を削除すると、関連付けられたすべての書籍も削除されます。
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" >
<OnDelete Action="Cascade" />
</End>
</Association>