Élément Association (CSDL)

Un élément Association définit une relation entre deux types d'entités.Une association doit spécifier les types d'entités impliqués dans la relation et le nombre possible de types d'entités à chaque terminaison de la relation, appelé « multiplicité ».La multiplicité d'une terminaison d'association peut avoir une valeur égale à un (1), zéro ou un (0..1), ou plusieurs (*).Ces informations sont spécifiées dans deux éléments End enfants.

Il est possible d'accéder aux instances de type d'entité au niveau d'une terminaison d'une association via les propriétés de navigation ou les clés étrangères, si elles sont exposées sur un type d'entité.Pour plus d'informations, consultez les rubriques Élément NavigationProperty, Élément ReferentialConstraint et Définition et gestion des relations.

Dans une application, une instance d'une association représente une association spécifique entre des instances de types d'entités.Les instances d'association sont regroupées logiquement dans un ensemble d'associations.Pour plus d'informations, consultez Élément AssociationSet.

Un élément Association peut avoir les éléments enfants suivants (dans l'ordre répertorié) :

Attributs applicables

Le tableau ci-dessous décrit les attributs qui peuvent s'appliquer à l'élément Association.

Nom d'attribut

Requis

Valeur

Name

Oui

Nom de l'association.

Notes

Un nombre quelconque d'attributs d'annotation (attributs XML personnalisés) peut être appliqué à l'élément Association.Toutefois, les attributs personnalisés ne peuvent pas appartenir à un espace de noms XML réservé pour le langage CSDL.Les noms qualifiés complets de deux attributs personnalisés quelconques ne peuvent pas être identiques.

Exemple

L'exemple suivant illustre un élément Association qui définit l'association CustomerOrders lorsque des clés étrangères n'ont pas été exposées sur les types d'entités Customer et Order.Les valeurs Multiplicity de chaque élément End de l'association indiquent que de nombreux éléments Orders peuvent être associés à un élément Customer, mais qu'un seul élément Customer peut être associé à un élément Order.En outre, l'élément OnDelete indique que tous les éléments Orders associés à un élément Customer particulier et qui ont été chargés dans ObjectContext seront supprimés si l'élément Customer est supprimé.

<Association Name="CustomerOrders">
  <End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1" >
        <OnDelete Action="Cascade" />
  </End>
  <End Type="ExampleModel.Order" Role="Order" Multiplicity="*" />
</Association>

L'exemple suivant illustre un élément Association qui définit l'association CustomerOrders lorsque des clés étrangères ont été exposées sur les types d'entités Customer et Order.Lorsque les clés étrangères ont été exposées, la relation entre les entités est gérée à l'aide d'un élément ReferentialConstraint.Un élément AssociationSetMapping correspondant n'est pas nécessaire pour mapper cette association à la source de données.

<Association Name="CustomerOrders">
  <End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1" >
        <OnDelete Action="Cascade" />
  </End>
  <End Type="ExampleModel.Order" Role="Order" Multiplicity="*" />
  <ReferentialConstraint>
       <Principal Role="Customer">
           <PropertyRef Name="Id" />
       </Principal>
       <Dependent Role="Order">
            <PropertyRef Name="CustomerId" />
        </Dependent>
  </ReferentialConstraint>
</Association>

Voir aussi

Concepts

Vue d'ensemble d'Entity Framework

Spécification CSDL

Élément Schema (CSDL)

type d'association

Autres ressources

Spécifications CSDL, SSDL et MSL

ADO.NET Entity Data Model Tools