アソシエーション End の多重度 (Entity Data Model)
アソシエーション End の多重度は、アソシエーションの 1 つの End に存在できるエンティティ型のインスタンス数を定義します。
アソシエーション End の多重度には、次のいずれかの値を指定できます。
1 (1): アソシエーション End に 1 つのエンティティ型のインスタンスが存在することを示します。
0 または 1 (0..1): アソシエーション End に 0 または 1 つのエンティティ型のインスタンスが存在することを示します。
多数 (*): アソシエーション End に 0、1 つ、または複数のエンティティ型のインスタンスが存在することを示します。
アソシエーションは、多くの場合、そのアソシエーション End の多重度により特徴付けられます。 たとえば、アソシエーション End の多重度が 1 (1) と多数 (*) の場合、アソシエーションは一対多のアソシエーションと呼ばれます。 次の例で、PublishedBy アソシエーションは一対多のアソシエーションです (出版社が多くの書籍を出版し、書籍は 1 社の出版社により出版されます)。 WrittenBy アソシエーションは多対多のアソシエーションです (書籍の著者が複数の場合があり、著者は複数の書籍を執筆することができます)。
例
下のダイアグラムは、PublishedBy および WrittenBy という 2 つのアソシエーションの概念モデルを示しています。 PublishedBy アソシエーションのアソシエーション End は Book および Publisher のエンティティ型です。 Publisher End の多重度は 1 (1) で、Book End の多重度は多数 (*) です。
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>