Élément AssociationSet (EntityContainer SSDL)

Dans le modèle EDM (Modèle de données d'entité), l'élément AssociationSet dans le langage SSDL (Store Schema Definition Language) spécifie une association dans les métadonnées de stockage.

Le modèle objet qui sera créé à partir du schéma conceptuel exige que les classes programmables et les structures de stockage contiennent des données pour les applications basées sur le modèle. Un AssociationSetMapping en langage MSL (Mapping Specification Language) connecte l'objet AssociationSet défini en langage CSDL (Conceptual Schema Definition Language) au AssociationSet dans SSDL qui décrit les structures de stockage.

La syntaxe CSDL ci-dessous illustre la déclaration d'un objet AssociationSet nommé FK_Employee_Employee_ManagerID dans le schéma AdventureWorks.Store. Ce AssociationSet fait partie du EntityContainer nommé AdventureWorks.Store dans les métadonnées AdventureWorks. Bien que ce EntityContainer soit défini dans le schéma AdventureWorks.Store, le EntityContainer est un élément indépendant.

L'élément AssociationSet assigne un Name et identifie l'objet AssociationType utilisé dans la désignation de cet ensemble d'associations.

  <EntityContainer Name="Adventureworks.Store">
<AssociationSet Name="FK_Employee_Employee_ManagerID"
        Association="Adventureworks.Store.FK_Employee_Employee_ManagerID">
      <End Role="Employee" EntitySet="Employee" />
      <End Role="Employee1" EntitySet="Employee" />
    </AssociationSet>
  </EntityContainer>

  <Association Name="FK_Employee_Employee_ManagerID">
    <End Role="Employee" Type="Adventureworks.Store.Employee" Multiplicity="0..1" />
    <End Role="Employee1" Type="Adventureworks.Store.Employee" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Employee">
        <PropertyRef Name="EmployeeID" />
      </Principal>
      <Dependent Role="Employee1">
        <PropertyRef Name="ManagerID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

Dans cet exemple, l'élément ReferentialConstraint indique que les associations dépendent des structures des bases de données. Le ReferentialConstraint spécifie un Principal Role, un Dependent Role et, ce qui est primordial, un PropertyRef pour chaque rôle qui correspond à la relation de clé étrangère dans la base de données.

Le PropertyRef du Principal Role spécifie la propriété qui est affectée à une colonne de clé étrangère de la table de base de données Employee. Le PropertyRef du Dependent Role spécifie la colonne qui contient la clé étrangère. Par exemple, dans l'association FK_Employee_Employee_ManagerID, le PropertyRef du Dependent Role correspond à la propriété EmployeeID de l'employé responsable que contient la colonne de clé étrangère ManagerID de la table Employee. Pour un exemple complet utilisant le ReferentialConstraint, voir Implémentation d'associations (EDM).

Lorsque le modèle objet de programmation est créé, les entités du type FK_Employee_Employee_ManagerID peuvent être instanciées dans le code d'application.

À des fins de précision, la déclaration du AssociationType est incluse dans l'exemple après les définitions EntityContainer et AssociationSet.

Voir aussi

Concepts

Élément AssociationSet (EntityContainer CSDL)
Élément EntitySetMapping (MSL)
Jeux d'entités (EDM)
Ensemble d'associations (EDM)
Modèle complet AdventureWorks (EDM)