Navigációs tulajdonság
A navigációs tulajdonság egy entitástípus opcionális tulajdonsága, amely lehetővé teszi a társítás egyik végétől a másik végéig történő navigálást. Más tulajdonságoktól eltérően a navigációs tulajdonságok nem hordoznak adatokat.
A navigációs tulajdonság definíciója a következőket tartalmazza:
Egy név. (Kötelező)
Az a társítás, amellyel navigál. (Kötelező)
Az általa navigált társítás végei. (Kötelező)
A navigációs tulajdonságok nem kötelezőek a társítás végén található mindkét entitástípuson. Ha egy társítás végén egy entitástípusra határoz meg navigációs tulajdonságot, akkor nem kell navigációs tulajdonságot definiálnia az entitástípuson a társítás másik végén.
A navigációs tulajdonság adattípusát a távoli társítás végének szorzása határozza meg. Tegyük fel például, hogy egy navigációs tulajdonság egy entitástípuson Customer
található, OrdersNavProp
és egy-a-többhöz társítást navigál az és Order
a közöttCustomer
. Mivel a navigációs tulajdonság távoli társításának vége több (*), az adattípusa gyűjtemény (a továbbiakban Order
: ). Hasonlóképpen, ha egy navigációs tulajdonság CustomerNavProp
létezik az Order
entitástípuson, az adattípusa az lenne Customer
, mert a távoli vég szorzása egy (1).
Példa
Az alábbi ábrán egy három entitástípussal rendelkező fogalmi modell látható: Book
, Publisher
és Author
. A navigációs tulajdonságok Publisher
, és Authors
a Book entitástípuson vannak definiálva. A navigációs tulajdonság Books
a Publisher entitástípuson és az entitástípuson is definiálva Author
van.
A ADO.NET Entity Framework egy tartományspecifikus nyelvet (DSL) használ, amelyet fogalmi sémadefiníciós nyelvnek (CSDL) hívunk a fogalmi modellek meghatározásához. A következő CSDL határozza meg a Book
fenti ábrán látható entitástípust:
<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>
Az XML-attribútumok a navigációs tulajdonság meghatározásához szükséges információk közlésére szolgálnak: Az attribútum Name
tartalmazza a tulajdonság nevét, Relationship
a navigálni kívánt társítás nevét, valamint FromRole
ToRole
a társítás végét.