Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przechodzi przez relację ustanowioną między jednostkami.
Składnia
navigate(instance-expression, [relationship-type], [to-end [, from-end] ])
Argumenty (w programowaniu)
instance-expression Wystąpienie jednostki.
relationship-type Nazwa typu relacji z pliku języka definicji schematu koncepcyjnego (CSDL). Element relationship-type jest kwalifikowany jako <przestrzeń nazw>.<nazwa> typu relacji.
to Koniec relacji.
from Początek relacji.
Wartość zwracana
Jeśli kardynalność elementu do końca wynosi 1, zwracana wartość to Ref<T>. Jeśli kardynalność elementu to n, zwracana wartość to Collection<Ref<T>>.
Uwagi
Relacje to konstrukcje pierwszej klasy w modelu danych jednostki (EDM). Relacje można ustanowić między co najmniej dwoma typami jednostek, a użytkownicy mogą przechodzić przez relację z jednego końca (jednostki) do innej.
from i to są warunkowo opcjonalne, gdy nie ma niejednoznaczności w rozpoznawaniu nazw w relacji.
FUNKCJA NAVIGATE jest prawidłowa w obszarze O i C.
Ogólna forma konstrukcji nawigacji jest następująca:
navigate(instance-expression, relationship-type[ [ to-end , from-end ] ] )
Przykład:
Select o.Id, navigate(o, OrderCustomer, Customer, Order)
From LOB.Orders as o
Gdzie OrderCustomer to relationship, a klient i zamówienie to to-end (klient) i from-end (kolejność) relacji. Jeśli parametr OrderCustomer był relacją n:1, typ wyniku wyrażenia nawigacji to Ref<Customer>.
Prostsza forma tego wyrażenia jest następująca:
Select o.Id, navigate(o, OrderCustomer)
From LOB.Orders as o
Podobnie w zapytaniu w poniższym formularzu wyrażenie nawigowania spowodowałoby wygenerowanie zamówienia>> ref<kolekcji<.
Select c.Id, navigate(c, OrderCustomer, Order, Customer)
From LOB.Customers as c
Wyrażenie-wystąpienia musi być typem jednostki/ref.
Przykład
Następujące zapytanie Entity SQL używa operatora NAVIGATE, aby przejść przez relację ustanowioną między typami jednostek Address i SalesOrderHeader. Zapytanie jest oparte na modelu AdventureWorks Sales. Aby skompilować i uruchomić to zapytanie, wykonaj następujące kroki:
Postępuj zgodnie z procedurą w temacie Instrukcje: wykonywanie zapytania zwracającego wyniki StructuralType.
Przekaż następujące zapytanie jako argument do
ExecuteStructuralTypeQuerymetody :
SELECT address.AddressID, (SELECT VALUE DEREF(soh)
FROM NAVIGATE(address,
AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID)
AS soh)
FROM AdventureWorksEntities.Addresses AS address