Partager via


CREATEREF (Entity SQL)

Fabrique des références à une entité dans un jeu d’entités.

Syntaxe

CreateRef(entityset_identifier, row_typed_expression)  

Les arguments

entityset_identifier
Identificateur d’ensemble d’entités, et non littéral de chaîne.

row_typed_expression
Expression typée de ligne qui correspond aux propriétés de clé du type d’entité.

Remarques

row_typed_expression doit être structurellement équivalent au type de clé de l’entité. Autrement dit, il doit avoir le même nombre et les mêmes types de champs dans le même ordre que les clés d’entité.

Dans l’exemple ci-dessous, Orders et BadOrders sont des ensembles d’entités de type Order, et l’ID est supposé être la propriété clé unique de Order. L’exemple illustre la façon dont nous pouvons produire une référence à une entité dans BadOrders. Notez que la référence peut être déanglante. Autrement dit, la référence peut ne pas identifier réellement une entité spécifique. Dans ce cas, une DEREF opération sur cette référence retourne une valeur Null.

SELECT CreateRef(LOB.BadOrders, row(o.Id))
FROM LOB.Orders AS o

Exemple :

La requête Entity SQL suivante utilise l’opérateur CREATEREF pour fabriquer des références à une entité dans un jeu d’entités. La requête est basée sur adventureWorks Sales Model. Pour compiler et exécuter cette requête, procédez comme suit :

  1. Suivez la procédure dans How to : Execute a Query that Returns StructuralType Results.

  2. Transmettez la requête suivante en tant qu’argument à la ExecuteStructuralTypeQuery méthode :

SELECT VALUE Key(CreateRef(AdventureWorksEntities.Products, 
    row(p.ProductID))) 
FROM AdventureWorksEntities.Products AS p

Voir aussi