Freigeben über


Navigationseigenschaft

Eine Navigationseigenschaft ist eine optionale Eigenschaft für einen Entitätstyp , der die Navigation von einem Ende einer Zuordnung zum anderen ermöglicht. Im Gegensatz zu anderen Eigenschaften enthalten Navigationseigenschaften keine Daten.

Eine Navigationseigenschaftsdefinition umfasst Folgendes:

  • Ein Name. (Erforderlich)

  • Die Zuordnung, in der sie navigiert. (Erforderlich)

  • Die Enden der Zuordnung, in der sie navigiert. (Erforderlich)

Beachten Sie, dass Navigationseigenschaften für beide Entitätstypen an den Enden einer Zuordnung optional sind. Wenn Sie eine Navigationseigenschaft für einen Entitätstyp am Ende einer Zuordnung definieren, müssen Sie keine Navigationseigenschaft für den Entitätstyp am anderen Ende der Zuordnung definieren.

Der Datentyp einer Navigationseigenschaft wird von der Multiplizität des Remotezuordnungsendes bestimmt. Angenommen, eine Navigationseigenschaft, OrdersNavProp, ist für einen Customer-Entitätstyp vorhanden und navigiert eine 1:n-Zuordnung zwischen Customer und Order. Da das Remotezuordnungsende für die Navigationseigenschaft eine Multiplizität von n (*) aufweist, ist sein Datentyp eine Auflistung (von Order). Ist eine Navigationseigenschaft, CustomerNavProp, für den Order-Entitätstyp vorhanden, wäre sein Datentyp dementsprechend Customer, da die Multiplizität des Remoteendes "eins" (1) beträgt.

Beispiel

Das folgende Diagramm zeigt ein konzeptionelles Modell mit drei Entitätstypen: Book, , Publisherund Author. Die Navigationseigenschaften Publisher und Authors werden für den Entitätstyp "Book" definiert. Die Navigationseigenschaft Books ist sowohl für den Publisher-Entitätstyp als auch für den Entitätstyp Author definiert.

Diagramm mit einem konzeptuellen Modell mit drei Entitätstypen.

Das ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL), die als konzeptuelle Schemadefinitionssprache (CSDL) bezeichnet wird, um konzeptionelle Modelle zu definieren. Die folgende CSDL definiert den Book im obigen Diagramm gezeigten Entitätstyp:

<EntityType Name="Book">
  <Key>
    <PropertyRef Name="ISBN" />
  </Key>
  <Property Type="String" Name="ISBN" Nullable="false" />
  <Property Type="String" Name="Title" Nullable="false" />
  <Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
  <NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
                      FromRole="Book" ToRole="Publisher" />
  <NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
                      FromRole="Book" ToRole="Author" />
</EntityType>

XML-Attribute werden verwendet, um die zum Definieren einer Navigationseigenschaft erforderlichen Informationen zu kommunizieren: Das Attribut Name enthält den Namen der Eigenschaft, Relationship enthält den Namen der Assoziation, die navigiert wird, und FromRole und ToRole enthalten die Enden der Assoziation.

Siehe auch