Aracılığıyla paylaş


NAVIGATE (Entity SQL)

Varlıklar arasında kurulan ilişkide gezinilir.

Söz dizimi

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

Bağımsız değişkenler

instance-expression Bir varlığın örneği.

relationship-type Kavramsal şema tanım dili (CSDL) dosyasından ilişkinin tür adı. relationship-type ad alanı> olarak <nitelenmiş.<ilişki türü adı>.

to İlişkinin sonu.

from İlişkinin başlangıcı.

Dönüş Değeri

Bitiş değerinin kardinalitesi 1 ise, dönüş değeri olur Ref<T>. Bitiş değerinin kardinalitesi n ise, dönüş değeri olur Collection<Ref<T>>.

Açıklamalar

İlişkiler, Varlık Veri Modeli'ndeki (EDM) birinci sınıf yapılardır. İki veya daha fazla varlık türü arasında ilişkiler kurulabilir ve kullanıcılar bir uçtan (varlık) diğerine ilişkinin üzerinde gezinebilir. from ve to ilişki içinde ad çözümlemesinde belirsizlik olmadığında koşullu olarak isteğe bağlıdır.

NAVIGATE, O ve C alanında geçerlidir.

Gezinti yapısının genel biçimi aşağıdaki gibidir:

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

Örneğin:

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

Burada OrderCustomer , ve Müşteri ve Sipariş, ilişkinin to-end (müşteri) ve from-end (sipariş) öğesidirrelationship. OrderCustomer bir n:1 ilişkisiyse, gezinme ifadesinin sonuç türü Baş<Müşteri'dir>.

Bu ifadenin daha basit biçimi aşağıdaki gibidir:

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

Benzer şekilde, aşağıdaki formdaki bir sorguda navigate ifadesi bir Koleksiyon<Başvuru<Sırası>> oluşturur.

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

Örnek-ifade bir varlık/başvuru türü olmalıdır.

Örnek

Aşağıdaki Entity SQL sorgusu, Address ve SalesOrderHeader varlık türleri arasında kurulan ilişkide gezinmek için NAVIGATE işlecini kullanır. Sorgu AdventureWorks Satış Modeli'ni temel alır. Bu sorguyu derlemek ve çalıştırmak için şu adımları izleyin:

  1. Nasıl yapılır: StructuralType Sonuçları Döndüren Bir Sorgu Yürütme bölümündeki yordamı izleyin.

  2. Aşağıdaki sorguyu yöntemine ExecuteStructuralTypeQuery bağımsız değişken olarak geçirin:

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

Ayrıca bkz.