Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Navigue sur la relation établie entre les entités.
Syntaxe
navigate(instance-expression, [relationship-type], [to-end [, from-end] ])
Les arguments
instance-expression Instance d’une entité.
relationship-type Nom de type de la relation, à partir du fichier CSDL (Conceptual Schema Definition Language). L’espace relationship-type de noms> est qualifié.<<nom> du type de relation.
to Fin de la relation.
from Début de la relation.
Valeur de retour
Si la cardinalité de la fin est 1, la valeur de retour est Ref<T>. Si la cardinalité de la fin est n, la valeur de retour est Collection<Ref<T>>.
Remarques
Les relations sont des constructions de première classe dans le modèle de données d’entité (EDM). Les relations peuvent être établies entre deux types d’entités ou plusieurs, et les utilisateurs peuvent parcourir la relation d’une extrémité (entité) vers une autre.
from et to sont facultatifs de manière conditionnelle lorsqu’il n’y a aucune ambiguïté dans la résolution de noms dans la relation.
NAVIGATE est valide dans l’espace O et C.
La forme générale d’une construction de navigation est la suivante :
navigate(instance-expression, , relationship-type[ [ to-end , from-end ] ] )
Par exemple:
Select o.Id, navigate(o, OrderCustomer, Customer, Order)
From LOB.Orders as o
Où OrderCustomer est le relationship, et le client et la commande sont le to-end (client) et from-end (commande) de la relation. Si OrderCustomer était une relation n :1, le type de résultat de l’expression de navigation est Ref<Customer>.
La forme plus simple de cette expression est la suivante :
Select o.Id, navigate(o, OrderCustomer)
From LOB.Orders as o
De même, dans une requête du formulaire suivant, l’expression navigate produit un ordre>> de référence<de collection<.
Select c.Id, navigate(c, OrderCustomer, Order, Customer)
From LOB.Customers as c
L’expression d’instance doit être un type d’entité/ref.
Exemple :
La requête Entity SQL suivante utilise l’opérateur NAVIGATE pour parcourir la relation établie entre les types d’entités Address et SalesOrderHeader. La requête est basée sur adventureWorks Sales Model. Pour compiler et exécuter cette requête, procédez comme suit :
Suivez la procédure dans How to : Execute a Query that Returns StructuralType Results.
Transmettez la requête suivante en tant qu’argument à la
ExecuteStructuralTypeQueryméthode :
SELECT address.AddressID, (SELECT VALUE DEREF(soh)
FROM NAVIGATE(address,
AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID)
AS soh)
FROM AdventureWorksEntities.Addresses AS address