Megosztás a következőn keresztül:


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 Ordera 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 CustomerNavProplé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.

Diagram showing a conceptual model with three entity types.

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 FromRoleToRole a társítás végét.

Lásd még