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. (Verplicht)
De koppeling die erin wordt genavigeert. (Verplicht)
De uiteinden van de koppeling die door de koppeling wordt genavigeert. (Verplicht)
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 bestaat, OrdersNavProp
bestaat op een Customer
entiteitstype en navigeert door een een-op-veel-koppeling tussen Customer
en Order
. Omdat de externe koppeling voor de navigatie-eigenschap multipliciteit van veel (*) heeft, is het gegevenstype een verzameling (van Order
). Als er een navigatie-eigenschap bestaat op CustomerNavProp
het entiteitstype, is Customer
het gegevenstype van het Order
type, omdat de multipliciteit van het externe uiteinde één (1) is.
Opmerking
In het onderstaande diagram ziet u een conceptueel model met drie entiteitstypen: Book
, Publisher
en 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.
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 FromRole
ToRole
bevat de uiteinden van de koppeling.