Partager via


Élément Association (SSDL)

Dans le modèle EDM (Modèle de données d'entité), une association dans le schéma de métadonnées spécifie une relation logique entre des types d'entité définis en langage SSDL (Store Scheme Definition Language).

La syntaxe SSDL utilisée pour une association déclarée dans le schéma de métadonnées ressemble à celle utilisée en langage CSDL (Conceptual Schema Definition Language), mais la syntaxe SSDL inclut des attributs qui spécifient FromRole et ToRole. Ces attributs sont équivalents à la clé primaire et à la clé étrangère dans les tables de base de données.

L'exemple de schéma suivant inclut l'élément Schema avec le Namespace et l'Alias de la partition de la base de données cible des Ressources humaines Adventure Works qui est définie. Une définition EntityType est le seul élément requis dans l'exemple, car les deux terminaisons de l'association Employee_Employee_ManagerID sont des entités Employee.

<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRTarget" Alias="Self"
        xmlns="https://schemas.microsoft.com/ado/2006/04/edm/ssdl">

  <EntityType Name="Employee">
    <Key>
      <PropertyRef Name="EmployeeID" />
    </Key>
    <Property Name="EmployeeID" Type="int" Nullable="false" />
    <Property Name="NationalIDNumber" Type="nvarchar" Nullable="false" MaxLength="15" />
    <Property Name="ContactID" Type="int" Nullable="false" />
    <Property Name="LoginID" Type="nvarchar" Nullable="false" MaxLength="256" />
    <Property Name="ManagerID" Type="int" />
<!- Some employee properties ommitted for brevity -->
  </EntityType>

  <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 cette déclaration de l'entité Employee utilisée dans l'association Employee_Employee_ManagerID, les propriétés de l'entité Employee sont désignées à l'aide des types de données du modèle de stockage, dans ce cas, les types SQL Server.

L'élément Association définit une relation logique entre deux entités Employee. Les attributions Type des propriétés End de l'élément Association sont toutes les deux des entités Employee. L'un des employés est désigné en tant que Employee1 par l'attribut Role d'une propriété End de l'élément Association.

Les affectations de type dans les associations doivent utiliser des noms complets. Dans cet exemple, l'affectation de type utilise le SelfAlias pour l'espace de noms AdventureWorksHRTarget.

Le Mulitiplicity des attributs End de cet élément Association indique qu'un Employeee1 peut participer à zéro, une ou plusieurs instances de cette association ; le responsable peut gérer plusieurs employés, mais un Employee1 géré peut adresser un rapport à un seul responsable et peut par conséquent participer à zéro ou une association de ce type.

Un ReferentialConstraint sur l'élément Association spécifie Employee1 comme DependentRole et Employee comme PrincipalRole. Cette contrainte correspond à la clé étrangère ManagerID dans la table de données Employee.

Pour plus d'informations sur les attributs des associations, voir les sous-rubriques suivantes :

Name (Association SSDL)

Attribut Role (Association SSDL)

Attribut Type (Association SSDL)

Attribut Multiplicity (Association SSDL)

Élément ReferentialConstraint (Association SSDL)

Voir aussi

Concepts

Élément AssociationSet (EntityContainer SSDL)
Élément Association (CSDL)
Élément AssociationSetMapping (MSL)
Élément ReferentialConstraint (Association SSDL)
Modèle complet AdventureWorks (EDM)