Navigeringsegenskap
En navigeringsegenskap är en valfri egenskap för en entitetstyp som möjliggör navigering från ena änden av en association till den andra änden. Till skillnad från andra egenskaper innehåller navigeringsegenskaper inte data.
En definition av navigeringsegenskap innehåller följande:
Ett namn. (Krävs)
Den association som den navigerar i. (Krävs)
Slutet på den association som den navigerar i. (Krävs)
Navigeringsegenskaper är valfria för båda entitetstyperna i slutet av en association. Om du definierar en navigeringsegenskap för en entitetstyp i slutet av en association behöver du inte definiera en navigeringsegenskap för entitetstypen i den andra änden av associationen.
Datatypen för en navigeringsegenskap bestäms av multipliciteten för dess fjärrassociationslut. Anta till exempel att en navigeringsegenskap, OrdersNavProp
, finns på en entitetstyp Customer
och navigerar en en-till-många-association mellan Customer
och Order
. Eftersom fjärrassociationens slut för navigeringsegenskapen har många (*) är dess datatyp en samling (av Order
). På samma sätt, om en navigeringsegenskap, CustomerNavProp
finns på Order
entitetstypen, skulle dess datatyp vara Customer
, eftersom multipliciteten för fjärrsluten är en (1).
Exempel
Diagrammet nedan visar en konceptmodell med tre entitetstyper: Book
, Publisher
och Author
. Navigeringsegenskaperna Publisher
och Authors
definieras för entitetstypen Bok. Navigeringsegenskapen Books
definieras för både entitetstypen Publisher och entitetstypen Author
.
ADO.NET Entity Framework använder ett domänspecifikt språk (DSL) som kallas CSDL (Conceptual Schema Definition Language) för att definiera konceptuella modeller. Följande CSDL definierar entitetstypen Book
som visas i diagrammet ovan:
<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-attribut används för att förmedla den information som krävs för att definiera en navigeringsegenskap: Attributet Name
innehåller namnet på egenskapen, Relationship
innehåller namnet på den association som den navigerar i och FromRole
innehåller ToRole
associationens slut.