NAVIGATE (Entity SQL)

Menavigasi hubungan yang ditetapkan antar entitas.

Sintaksis

navigate(instance-expression, [relationship-type], [to-end [, from-end] ])

Argumen

instance-expression Instans entitas.

relationship-type Nama jenis hubungan, dari file bahasa definisi skema konseptual (CSDL). relationship-type memenuhi syarat sebagai <namespace> layanan.<nama> jenis hubungan.

to Akhir hubungan.

from Awal hubungan.

Mengembalikan Nilai

Jika kardinalitas dari ujung ke ujung adalah 1, nilai yang dikembalikan adalah Ref<T>. Jika kardinalitas dari ujung ke ujung adalah n, nilai yang dikembalikan adalah Collection<Ref<T>>.

Komentar

Hubungan adalah konstruksi kelas satu dalam Model Data Entitas (EDM). Hubungan dapat dibuat antara dua atau beberapa jenis entitas, dan pengguna dapat menavigasi hubungan dari satu ujung (entitas) ke yang lain. from dan to opsional secara kondisional ketika tidak ada ambiguitas dalam resolusi nama dalam hubungan.

NAVIGATE valid di ruang O dan C.

Bentuk umum konstruksi navigasi adalah sebagai berikut:

navigate(instance-expression, relationship-type, [ [ to-end , from-end ] ] )

Contohnya:

Select o.Id, navigate(o, OrderCustomer, Customer, Order)
From LOB.Orders as o

Di mana OrderCustomer adalah relationship, dan Pelanggan dan Pesanan to-end adalah (pelanggan) dan from-end (pesanan) hubungan. Jika OrderCustomer adalah hubungan n:1, maka jenis hasil ekspresi navigasi adalah Pelanggan> Ref<.

Bentuk ekspresi ini yang lebih sederhana adalah sebagai berikut:

Select o.Id, navigate(o, OrderCustomer)
From LOB.Orders as o

Demikian pula, dalam kueri formulir berikut, Ekspresi navigasi akan menghasilkan Urutan>> Ref<Koleksi<.

Select c.Id, navigate(c, OrderCustomer, Order, Customer)
From LOB.Customers as c

Ekspresi instans harus merupakan jenis entitas/ref.

Contoh

Kueri SQL Entitas berikut menggunakan operator NAVIGATE untuk menavigasi hubungan yang dibuat antara jenis entitas Alamat dan SalesOrderHeader. Kueri didasarkan pada Model Penjualan AdventureWorks. Untuk mengkompilasi dan menjalankan kueri ini, ikuti langkah-langkah berikut:

  1. Ikuti prosedur dalam Cara: Menjalankan Kueri yang Mengembalikan Hasil StructuralType.

  2. Teruskan kueri berikut sebagai argumen ke ExecuteStructuralTypeQuery metode :

SELECT address.AddressID, (SELECT VALUE DEREF(soh) 
FROM NAVIGATE(address, 
    AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID) 
    AS soh)
FROM AdventureWorksEntities.Addresses AS address

Lihat juga