Sdílet prostřednictvím


NavigationProperty-Element (EntityType CSDL)

In Entitätsdatenmodell (EDM) deklariert ein NavigationProperty-Element eine Verknüpfung für das Navigieren zu und von Entitäten, die über den Association-Typ verbunden sind.

Wenn beispielsweise eine Association zwischen einem Employee-Typ und einem weiteren, als "Manager" definierten Employee-Typ definiert wird, kann für die Employee-Entität eine Navigationseigenschaft angegeben werden, um vom Employee, der dem Manager untersteht, zum Manager oder umgekehrt zu navigieren.

Der folgende Ausschnitt des Segments Human Relations des AdventureWorksHRModel-Schemas definiert die Entität Employee und die Association zwischen Employee-Entitäten, die bestimmte Mitarbeiter als Manager festlegt. Beachten Sie, dass die Association zwischen Entitäten des gleichen Typs erfolgt, deren Role sich jedoch unterscheidet.

Das Association-Element deklariert eine Zuordnung mit dem Namen Employee_Employee_ManagerID. Das einzige unterscheidende Attribut der Employee-Entitäten an den Enden dieser Zuordnung ist das Role-Attribut, das in der AssociationSet-Definition angegeben wird. Die letztere Role legt den EmployeeManager fest.

Das Multiplicity-Attribut des End-Elements in der Deklaration Association legt fest, dass ein Employee Manager von null oder mehr Mitarbeitern sein kann. Ein Employee kann nur einen Manager haben. Dies ist durch RoleEmployeeManager festgelegt.

  <EntityType Name="Employee" Key="EmployeeID">
    <Key>
        <PropertyRef Name="EmployeeID">
    </Key>
    <Property Name="EmployeeID" Type="Int32" Nullable="false" />
    <!-- Other properties omitted for brevity-->

<NavigationProperty Name="Employee1" 
Relationship="Adventureworks.FK_Employee_Employee_ManagerID" 
FromRole="Employee" ToRole="Employee1" />  </EntityType>

<NavigationProperty Name="Employee2" 
Relationship="Adventureworks.FK_Employee_Employee_ManagerID" 
FromRole="Employee1" ToRole="Employee" />

  <EntityContainer Name="HumanResources">

    <EntitySet Name="Employee" EntityType="Adventureworks.Employee" />

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

  </EntityContainer>

Die NavigationProperty ist eine Verknüpfung zur Employee-Entität, bei der es sich um den Manager der Employee-Entität handelt, die die NavigationProperty enthält. Wenn das auf diesen Spezifikationen beruhende Objektmodell erstellt wird, beinhaltet die Employee-Klasse eine Manager-Eigenschaft sowie Hilfsmethoden für die Navigation der von NavigationProperty definierten Zuordnung. Die Hilfsmethoden werden automatisch mit dem Objektmodell erstellt.

Navigationseigenschaften können verwendet werden, um Eigenschaften zu implementieren, die wie Auflistungen in Code funktionieren. Weitere Informationen zu Navigationseigenschaften und Auflistungen finden Sie unter Navigationseigenschaften (EDM).

Das NavigationProperty-Element wird nur in der konzeptionellen Schemadefinitionssprache (CSDL) verwendet. In den SSDL-Metadaten ist eine Entsprechung vorhanden, mit der Primärschlüssel-/Fremdschlüsselbeziehungen in der Datenbank bestimmt werden, die diese Zuordnung unterstützen. In den Metadaten enthält diese Zuordnung eine referenzielle Einschränkung. Weitere Informationen über das ReferentialConstraint-Attribut finden Sie unter ReferentialConstraint-Element (Association SSDL) und Association-Element (SSDL).

Siehe auch

Konzepte

Entity Data Model-Beziehungen
Association-Element (CSDL)
Multiplicity-Attribut (Association CSDL)
Das vollständige AdventureWorks-Modell (EDM)
Navigationseigenschaften (EDM)
Association-Element (SSDL)
ReferentialConstraint-Element (Association SSDL)