CREATEREF (Entity SQL)
Crea referencias a una entidad en un elemento entityset.
Sintaxis
CreateRef(entityset_identifier, row_typed_expression)
Argumentos
entityset_identifier
Identificador de entityset, no un literal de cadena.
row_typed_expression
Expresión escrita por fila que corresponde a las propiedades de clave del tipo de entidad.
Observaciones
row_typed_expression
debe ser estructuralmente equivalentes al tipo de clave de la entidad. Es decir, debe tener el mismo número y los mismos tipos de campos en el mismo orden que las claves de entidad.
En el ejemplo siguiente, Orders y BadOrders son ambos elementos entityset de tipo Order y se supone que Id es la propiedad de clave única de Order. El ejemplo muestra cómo se puede generar una referencia a una entidad en BadOrders. Observe que la referencia puede estar pendiente. Es decir, la referencia puede no identificar realmente una entidad concreta. En esos casos, una operación DEREF
en esa referencia devuelve un valor NULL.
SELECT CreateRef(LOB.BadOrders, row(o.Id))
FROM LOB.Orders AS o
Ejemplo
La consulta de Entity SQL siguiente utiliza el operador CREATEREF para crear las referencias a una entidad en un conjunto de entidades. La consulta se basa en el modelo AdventureWorks Sales. Para compilar y ejecutar esta consulta, siga estos pasos:
Siga el procedimiento de How to: Execute a Query that Returns StructuralType Results.
Pase la consulta siguiente como argumento al método
ExecuteStructuralTypeQuery
:
SELECT VALUE Key(CreateRef(AdventureWorksEntities.Products,
row(p.ProductID)))
FROM AdventureWorksEntities.Products AS p