Udostępnij za pośrednictwem


Właściwość nawigacji

Właściwość nawigacji jest opcjonalną właściwością typu jednostki, która umożliwia nawigację z jednego końca skojarzenia do drugiego końca. W przeciwieństwie do innych właściwości właściwości nawigacja nie przenosi danych.

Definicja właściwości nawigacji obejmuje następujące elementy:

  • Nazwa. (Wymagane)

  • Nawigowanie po skojarzeniu. (Wymagane)

  • Końce nawigowania skojarzenia. (Wymagane)

Właściwości nawigacji są opcjonalne dla obu typów jednostek na końcach skojarzenia. Jeśli zdefiniujesz właściwość nawigacji na jednym typie jednostki na końcu skojarzenia, nie musisz definiować właściwości nawigacji na typie jednostki na drugim końcu skojarzenia.

Typ danych właściwości nawigacji jest określany przez mętność jego zdalnego zakończenia skojarzenia. Załóżmy na przykład, że właściwość nawigacji , OrdersNavPropistnieje w typie Customer jednostki i przechodzi do skojarzenia jeden do wielu między Customer i Order. Ponieważ zdalny koniec skojarzenia dla właściwości nawigacji ma wiele wartości (*), jego typ danych jest kolekcją (z Order). Podobnie jeśli właściwość nawigacji istnieje w typie Order jednostki, CustomerNavPropjego typ danych to Customer, ponieważ wielokrotność zakończenia zdalnego to jeden (1).

Przykład

Na poniższym diagramie przedstawiono model koncepcyjny z trzema typami jednostek: Book, Publisheri Author. Właściwości Publisher nawigacji i Authors są zdefiniowane w typie jednostki Book. Właściwość Books nawigacji jest definiowana zarówno dla typu jednostki Publisher, jak i Author typu jednostki.

Diagram showing a conceptual model with three entity types.

ADO.NET Entity Framework używa języka specyficznego dla domeny (DSL) nazywanego koncepcyjnym językiem definicji schematu (CSDL) do definiowania modeli koncepcyjnych. Poniższy plik CSDL definiuje Book typ jednostki pokazany na powyższym diagramie:

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

Atrybuty XML służą do przekazywania informacji niezbędnych do zdefiniowania właściwości nawigacji: atrybut Name zawiera nazwę właściwości, Relationship zawiera nazwę skojarzenia, na którym się porusza i FromRole ToRole zawiera końce skojarzenia.

Zobacz też