Dela via


Navigeringsegenskap

En navigeringsegenskap är en valfri egenskap för en entitetstypsom 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, CustomerNavPropfinns 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, Publisheroch Author. Navigeringsegenskaperna Publisher och Authors definieras för entitetstypen Bok. Navigeringsegenskapen Books definieras för både entitetstypen Publisher och entitetstypen Author .

Diagram showing a conceptual model with three entity types.

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.

Se även