Freigeben über


Association-Element (SSDL)

Im Entitätsdatenmodell (EDM) gibt eine Zuordnung im Metadatenschema eine logische Beziehung zwischen Entitätstypen an, die in der Datenspeicherschema-Definitionssprache (Store Schema Definition Language, SSDL) definiert sind.

Die SSDL-Syntax für eine im Metadatenschema deklarierte Zuordnung ähnelt der in der konzeptionellen Schemadefinitionssprache (Conceptual Schema Definition Language, CSDL) verwendeten Syntax. Die SSDL-Syntax enthält jedoch Attribute, die FromRole und ToRole angeben. Diese Attribute entsprechen dem Primärschlüssel und dem Fremdschlüssel in Datenbanktabellen.

Das folgende Schemabeispiel enthält das Schema-Element mit dem Namespace und dem Alias der zu definierenden Adventure Works Human Resources-Zieldatenbankpartition. In dem Beispiel ist eine EntityType-Definition ausreichend, da beide Seiten der Employee_Employee_ManagerID-Zuordnung Employee-Entitäten sind.

<?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>

In dieser Deklaration der in der Zuordnung Employee_Employee_ManagerID verwendeten Employee-Entität werden die Eigenschaften der Employee-Entität mithilfe der Datentypen des Speichermodells, in diesem Fall SQL Server-Typen, definiert.

Das Association-Element definiert eine logische Beziehung zwischen zwei Employee-Entitäten. Die Type-Zuweisungen der End-Eigenschaften der Association sind beide Employee-Entitäten. Einer der Mitarbeiter ist durch das Role-Attribut einer End-Eigenschaft der Association als Employee1 definiert.

Bei Typzuweisungen in Zuordnungen müssen vollqualifizierte Namen verwendet werden. In diesem Beispiel verwendet die Typzuweisung den Self-Alias für den AdventureWorksHRTarget-Namespace.

Die Mulitiplicity des End-Attributs dieser Association gibt an, dass Employeee1 an keiner oder mehreren Instanzen dieser Zuordnung beteiligt sein kann. Der Manager kann mehrere Mitarbeiter verwalten, der verwaltete Employee1 kann jedoch nur einem Manager unterstellt sein und daher nur an keiner oder genau einer Zuordnung dieses Typs beteiligt sein.

Eine ReferentialConstraint für die Association gibt Employee1 als DependentRole und Employee als PrincipalRole an. Diese Einschränkung entspricht dem Fremdschlüssel ManagerID in der Datentabelle Employee.

Weitere Informationen zu den Attributen von Zuordnungen finden Sie in folgenden Unterthemen:

Name (Association SSDL)

Role-Attribut (Association SSDL)

Type-Attribut (Association SSDL)

Multiplicity-Attribut (Association SSDL)

ReferentialConstraint-Element (Association SSDL)

Siehe auch

Konzepte

AssociationSet-Element (EntityContainer SSDL)
Association-Element (CSDL)
AssociationSetMapping-Element (MSL)
ReferentialConstraint-Element (Association SSDL)
Das vollständige AdventureWorks-Modell (EDM)