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 CustomerNavProp
existuje 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
, Publisher
a 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.
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í.