関連付けセットの末尾は、関連付けセットの末尾にあるエンティティの種類とエンティティ セットを識別します。 アソシエーション セットの端は、アソシエーション セットの一部として定義されます。アソシエーション セットには、端が正確に 2 つ必要です。
アソシエーション セットの終了定義には、次の情報が含まれています。
関連付けセットに関係するエンティティ型の 1 つ。 (必須)
アソシエーション セットに含まれるエンティティ型のエンティティ セット。 (必須)
例
次の図は、 WrittenBy
と PublishedBy
の 2 つの関連付けを持つ概念モデルを示しています。
次の図は、上記の概念モデルに基づく関連付けセット (PublishedBy
) と 2 つのエンティティ セット (Books
と Publishers
) を示しています。 関連付けセットの末尾は、 Books
エンティティ セットと Publishers
エンティティ セットです。 Books
エンティティ セット内の bi は、実行時にBook
エンティティ型のインスタンスを表します。 同様に、Pj は、Publisher
エンティティ セット内のPublishers
インスタンスを表します。 BiPj は、PublishedBy
関連付けセット内のPublishedBy
関連付けのインスタンスを表します。
ADO.NET Entity Framework では、概念スキーマ定義言語 (CSDL) と呼ばれる DSL を使用して概念モデルを定義します。 次の CSDL では、上の図の関連付けごとに 1 つの関連付けが設定されたエンティティ コンテナーを定義します。 アソシエーション セットの終了は、各アソシエーション セット定義の一部として定義されることに注意してください。
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Books" EntityType="BooksModel.Book" />
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
<EntitySet Name="Authors" EntityType="BooksModel.Author" />
<AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
<End Role="Book" EntitySet="Books" />
<End Role="Publisher" EntitySet="Publishers" />
</AssociationSet>
<AssociationSet Name="WrittenBy" Association="BooksModel.WrittenBy">
<End Role="Book" EntitySet="Books" />
<End Role="Author" EntitySet="Authors" />
</AssociationSet>
</EntityContainer>