Bagikan melalui


Properti navigasi

Properti navigasi adalah properti opsional pada jenis entitas yang memungkinkan navigasi dari satu ujung association ke ujung lainnya. Tidak seperti properti lainnya, properti navigasi tidak membawa data.

Definisi properti navigasi mencakup hal berikut:

  • Sebuah nama. (Diperlukan)

  • Asosiasi yang dinavigasinya. (Diperlukan)

  • Ujung asosiasi yang dinavigasinya. (Diperlukan)

Properti navigasi bersifat opsional pada kedua tipe entitas di ujung asosiasi. Jika Anda menentukan properti navigasi pada satu tipe entitas di akhir asosiasi, Anda tidak perlu mendefinisikan properti navigasi pada jenis entitas di ujung asosiasi lainnya.

Tipe data properti navigasi ditentukan oleh keberagaman dari ujung asosiasi jarak jauhnya. Misalnya, anggaplah properti navigasi, OrdersNavProp, ada pada jenis entitas Customer dan menavigasi hubungan satu-ke-banyak antara Customer dan Order. Karena ujung asosiasi jarak jauh untuk properti navigasi memiliki keberagaman banyak (*), jenis datanya adalah kumpulan (dari Order). Demikian pula, jika properti navigasi, CustomerNavProp, ada pada jenis entitas Order, jenis datanya akan menjadi Customer, karena banyaknya ujung jarak jauh adalah satu (1).

Contoh

Diagram berikut menunjukkan model konseptual dengan tiga jenis entitas: Book, Publisher, dan Author. Properti navigasi Publisher dan Authors ditentukan pada jenis entitas Buku. Properti navigasi Books ditentukan pada jenis entitas Publisher dan jenis entitas Author.

Diagram showing a conceptual model with three entity types.

ADO.NET Entity Framework menggunakan bahasa khusus domain (DSL) yang disebut bahasa definisi skema konseptual (CSDL) untuk mendefinisikan model konseptual. CSDL berikut mendefinisikan jenis entitas Book yang ditunjukkan dalam diagram di atas:

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

Atribut XML digunakan untuk mengomunikasikan informasi yang diperlukan untuk mendefinisikan properti navigasi: Atribut Name berisi nama properti, Relationship berisi nama asosiasi yang dinavigasi, dan FromRole dan ToRole berisi akhir dari asosiasi.

Lihat juga