Compartilhar via


CRIARREF (Entity SQL)

Fabrica referências a uma entidade em um entityset.

Sintaxe

CreateRef(entityset_identifier, row_typed_expression)  

Argumentos

entityset_identifier
O identificador de entityset, não um literal de cadeia de caracteres.

row_typed_expression
Uma expressão linha tipada que corresponde a propriedades chave do tipo de objeto.

Comentários

row_typed_expression deve ser estrutural equivalente ao tipo principal para a entidade. Isto é, deve ter o mesmo número e tipos de campos na mesma ordem como as chaves de entidade.

No exemplo abaixo, os pedidos e BadOrders são ambos os entitysets ordem de tipo, e é a identificação assumida para ser a única propriedade de chave pedido. O exemplo ilustra como nós podemos gerar uma referência a uma entidade em BadOrders. Observe que a referência pode oscilar. Isto é, a referência não pode realmente identificar uma entidade específica. Nesses casos, uma operação de DEREF na referência retorna um zero.

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

Exemplo

A seguinte consulta SQL Entity usa o operador de CREATEREF para fabricar referências a uma entidade em um conjunto de entidades. A consulta é baseada no modelo de vendas AdventureWorks. Para compilar e executar essa consulta, siga estas etapas:

  1. Siga o procedimento em Como executar uma consulta que retorna resultados de StructuralType.

  2. Passe a consulta a seguir como um argumento para o método ExecuteStructuralTypeQuery:

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

Confira também