type d'association
Un type association (ou association) est le composant fondamental pour la description des relations dans le modèle EDM (Entity Data Model). Dans un modèle conceptuel, une association représente une relation entre deux types entité (comme Customer
et Order
). Dans une application, une instance d'une association représente une association spécifique (comme une association entre une instance de Customer
et une instance d'Order
). Les instances d’association sont regroupées logiquement dans un ensemble d’associations.
Une définition d'association contient les informations suivantes :
Nom unique. (Obligatoire)
Deux terminaisons d’association, une pour chaque type entité dans la relation. (Obligatoire)
Notes
Une association ne peut pas représenter de relation entre plus de deux types d'entité. Toutefois, une association peut définir une relation réciproque en spécifiant le même type d'entité pour chacune de ses terminaisons d'association.
Contrainte d’intégrité référentielle. (facultatif)
Chaque terminaison d’association doit spécifier une multiplicité de terminaison d’association, qui indique le nombre d’instances de type entité pouvant figurer à une terminaison de l’association. La multiplicité de terminaison d'association peut avoir une valeur égale à un (1), zéro ou un (0..1), ou plusieurs (*). Il est possible d’accéder aux instances de type entité au niveau d’une terminaison d’une association via des propriétés de navigation ou des clés étrangères, si elles sont exposées sur un type entité. Pour plus d’informations, consultez Entity Data Model : Clés étrangères.
Exemple
Le diagramme suivant montre un modèle conceptuel avec deux associations : PublishedBy
et WrittenBy
. Les terminaisons d'association pour l'association PublishedBy
sont les types d'entité Book
et Publisher
. La multiplicité de la terminaison Publisher
est un (1) et celle de la terminaison Book
est plusieurs (*), ce qui indique qu'un éditeur publie de nombreux livres et qu'un livre est publié par un seul éditeur.
ADO.NET Entity Framework utilise un langage spécifique à un domaine (DSL), appelé CSDL (Conceptual Schema Definition Language), pour définir des modèles conceptuels. Le CSDL suivant définit l'association PublishedBy
présentée dans le diagramme ci-dessus :
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
</Association>