Navigační vlastnost

Navigační vlastnost je volitelná vlastnost typu entity, která umožňuje navigaci z jednoho konce přidružení na druhý konec. Na rozdíl od jiných vlastností nenesou navigační vlastnosti data.

Definice navigační vlastnosti zahrnuje následující:

  • Název. (Povinné)

  • Přidružení, které prochází. (Povinné)

  • Konce přidružení, které prochází. (Povinné)

Navigační vlastnosti jsou volitelné u obou typů entit na konci přidružení. Pokud definujete navigační vlastnost u jednoho typu entity na konci přidružení, nemusíte definovat navigační vlastnost u typu entity na druhém konci přidružení.

Datový typ navigační vlastnosti je určen násobností konce vzdáleného přidružení. Předpokládejme například, OrdersNavPropže navigační vlastnost existuje u Customer typu entity a prochází přidružení 1:N mezi Customer a Order. Vzhledem k tomu, že konec vzdáleného přidružení pro navigační vlastnost má násobnost mnoha (*), jeho datový typ je kolekce (of Order). Podobně platí, že pokud navigační vlastnost CustomerNavPropexistuje u Order typu entity, jeho datový typ by byl Customer, protože násobnost vzdáleného konce je jedna (1).

Příklad

Následující diagram znázorňuje koncepční model se třemi typy entit: Book, Publishera Author. Navigační vlastnosti Publisher a Authors jsou definovány v typu entity Knihy. Navigační vlastnost Books je definována u typu entity Publisheru i Author u typu entity.

Diagram showing a conceptual model with three entity types.

ADO.NET Entity Framework používá jazyk specifický pro doménu (DSL) označovaný jako jazyk CSDL (Conceptual Schema Definition Language) k definování konceptuálních modelů. Následující CSDL definuje Book typ entity zobrazený v diagramu výše:

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

Atributy XML slouží ke komunikaci informací potřebných k definování navigační vlastnosti: Atribut Name obsahuje název vlastnosti, Relationship obsahuje název přidružení, které prochází, a FromRole ToRole obsahuje konce přidružení.

Viz také