NavigationseigenschaftNavigation property

Ein Navigationseigenschaft ist eine optionale Eigenschaft auf eine Entitätstyp ermöglicht, die die Navigation von einer End von einer Zuordnung auf das andere Ende.A navigation property is an optional property on an entity type that allows for navigation from one end of an association to the other end. Im Gegensatz zu anderen Eigenschaften, Navigationseigenschaften werden keine Daten enthalten.Unlike other properties, navigation properties do not carry data.

Die Definition einer Navigationseigenschaft enthält Folgendes:A navigation property definition includes the following:

  • Einen Namen.A name. (erforderlich)(Required)

  • Die Zuordnung, in der sie navigiert.The association that it navigates. (erforderlich)(Required)

  • Die Enden der Zuordnung, in der sie navigiert.The ends of the association that it navigates. (erforderlich)(Required)

Beachten Sie, dass Navigationseigenschaften für beide Entitätstypen an den Enden einer Zuordnung optional sind.Note that navigation properties are optional on both entity types at the ends of an association. Wenn Sie für einen Entitätstyp am Ende einer Zuordnung eine Navigationseigenschaft definieren, muss keine Navigationseigenschaft für den Entitätstyp am anderen Ende der Zuordnung definiert werden.If you define a navigation property on one entity type at the end of an association, you do not have to define a navigation property on the entity type at the other end of the association.

Der Datentyp einer Navigationseigenschaft richtet sich nach der Multiplizität von dessen Remote Zuordnungsende.The data type of a navigation property is determined by the multiplicity of its remote association end. Angenommen, eine Navigationseigenschaft, OrdersNavProp, ist für einen Customer-Entitätstyp vorhanden und navigiert eine 1:n-Zuordnung zwischen Customer und Order.For example, suppose a navigation property, OrdersNavProp, exists on a Customer entity type and navigates a one-to-many association between Customer and Order. Da das remotezuordnungsende für die Navigationseigenschaft eine Multiplizität von vielen aufweist (*), der Datentyp ist eine Sammlung (der Order).Because the remote association end for the navigation property has multiplicity of many (*), its data type is a collection (of 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.Similarly, if a navigation property, CustomerNavProp, exists on the Order entity type, its data type would be Customer, because the multiplicity of the remote end is one (1).

BeispielExample

Die unten stehende Abbildung zeigt ein konzeptionelles Modell mit drei Entitätstypen: Book, Publisher und Author.The diagram below shows a conceptual model with three entity types: Book, Publisher, and Author. Die Navigationseigenschaften Publisher und Authors werden für den Book-Entitätstyp definiert.Navigation properties, Publisher and Authors, are defined on the Book entity type. Die Navigationseigenschaft Books wird sowohl für den Publisher-Entitätstyp als auch den Author-Entitätstyp definiert.Navigation property Books is defined on both the Publisher entity type and the Author entity type.

Das Diagramm zeigt ein konzeptionelles Modell mit drei Entitätstypen.

Die ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL) Bezeichnung konzeptionelle Schemadefinitionssprache (CSDL), konzeptionelle Modelle zu definieren.The ADO.NET Entity Framework uses a domain-specific language (DSL) called conceptual schema definition language (CSDL) to define conceptual models. Die folgende CSDL definiert den in der Abbildung oben gezeigten Book-Entitätstyp:The following CSDL defines the Book entity type shown in the diagram above:

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

Beachten Sie, dass XML-Attribute verwendet werden, um die erforderlichen Informationen zum Definieren einer Navigationseigenschaft zu kommunizieren: Das Attribut Name enthält den Namen der Eigenschaft, die Relationship enthält den Namen der sie navigiert, Zuordnung und FromRole und ToRole enthalten die Enden der Zuordnung.Note that XML attributes are used to communicate the information necessary to define a navigation property: The attribute Name contains the name of the property, Relationship contains the name of the association it navigates, and FromRole and ToRole contain the ends of the association.

Siehe auchSee also