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

アソシエーション End は、アソシエーションの一方の End にあるエンティティ型と、アソシエーションのその End に存在できるエンティティ型のインスタンス数を特定します。 アソシエーション End はアソシエーションの一部として定義され、アソシエーションに 2 つのアソシエーション End が必要です。 ナビゲーション プロパティは、一方のアソシエーション End から他方のアソシエーション End へのナビゲーションを可能にします。

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

  • アソシエーションに含まれるエンティティ型の 1 つ。 (必須)

    Ee382824.note(ja-jp,VS.100).gif注 :
    アソシエーションでは、各アソシエーション 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>

参照

概念

Entity Data Model キーの概念
Entity Data Model