Delen via


Navigatie-eigenschap

Een navigatie-eigenschap is een optionele eigenschap voor een entiteitstype waarmee navigatie van het ene uiteinde van een koppeling naar het andere uiteinde mogelijk is. In tegenstelling tot andere eigenschappen bevatten navigatie-eigenschappen geen gegevens.

Een definitie van de navigatie-eigenschap bevat het volgende:

  • Een naam. (Vereist)

  • De koppeling die erin wordt genavigeert. (Vereist)

  • De uiteinden van de associatie die wordt genavigeerd. (Vereist)

Navigatie-eigenschappen zijn optioneel voor beide entiteitstypen aan het einde van een koppeling. Als u een navigatie-eigenschap definieert voor één entiteitstype aan het einde van een koppeling, hoeft u geen navigatie-eigenschap te definiëren voor het entiteitstype aan het andere uiteinde van de koppeling.

Het gegevenstype van een navigatie-eigenschap wordt bepaald door de multipliciteit van het uiteinde van de externe koppeling. Stel dat een navigatie-eigenschap, OrdersNavProp, aanwezig is op een Customer entiteit type en faciliteert een een-op-veel associatie tussen Customer en Order. Omdat het afstandsassociatie einde voor de navigatie-eigenschap een multipliciteit van meerdere (*) heeft, is het gegevenstype een verzameling (van Order). Evenzo, als er een navigatie-eigenschap, CustomerNavProp, bestaat op het entiteitstype Order, dan zou het gegevenstype Customer zijn, omdat de multipliciteit van het externe uiteinde één (1) is.

Voorbeeld

In het onderstaande diagram ziet u een conceptueel model met drie entiteitstypen: Book, Publisheren Author. De navigatie-eigenschappen Publisher en Authors zijn gedefinieerd op het entiteitstype Boek. De navigatie-eigenschap Books wordt gedefinieerd op zowel het entiteitstype Publisher als het Author entiteitstype.

Diagram met een conceptueel model met drie entiteitstypen.

De ADO.NET Entity Framework maakt gebruik van een domeinspecifieke taal (DSL) genaamd conceptuele schemadefinitietaal (CSDL) om conceptuele modellen te definiëren. Met de volgende CSDL wordt het Book entiteitstype gedefinieerd dat in het bovenstaande diagram wordt weergegeven:

<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-kenmerken worden gebruikt om de informatie te communiceren die nodig is om een navigatie-eigenschap te definiëren: het kenmerk Name bevat de naam van de eigenschap, Relationship bevat de naam van de koppeling die wordt genavigeert en FromRoleToRole bevat de uiteinden van de koppeling.

Zie ook