次の方法で共有


アソシエーション End の多重度

アソシエーション エンドの多重度は、アソシエーションの一方の端に存在できるエンティティ型インスタンスの数を定義します。

アソシエーション エンドの多重度には、次のいずれかの値を指定できます。

  • 1 (1): 関連付けの最後にエンティティ型インスタンスが 1 つだけ存在することを示します。

  • 0 または 1 (0..1): 関連付けの最後に 0 個または 1 個のエンティティ型インスタンスが存在することを示します。

  • many (*): 関連付けの最後に 0 個、1 つ以上のエンティティ型インスタンスが存在することを示します。

アソシエーションは、多くの場合、そのアソシエーション End の多重度により特徴付けられます。 たとえば、アソシエーションの末尾に多重度 1 (1) と多くの (*) がある場合、関連付けは一対多の関連付けと呼ばれます。 次の例では、 PublishedBy 関連付けは一対多の関連付けです (1 人の発行元が多数の書籍を発行し、1 つの書籍が 1 つの発行元によって発行されています)。 WrittenByの関連付けは、多対多の関連付けです (1 つの書籍に複数の著者を含め、1 人の著者が複数の書籍を書くことができます)。

次の図は、 PublishedByWrittenByの 2 つの関連付けを持つ概念モデルを示しています。 PublishedBy アソシエーションのアソシエーション End は Book および Publisher のエンティティ型です。 Publisher端の多重度は 1 で、Book端の多重度は多数 (*)です。

3 つのエンティティ型を持つモデルの例

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>

こちらも参照ください