Поделиться через


CREATEREF (Entity SQL)

Создает ссылки на сущность в наборе сущностей.

Синтаксис

CreateRef(entityset_identifier, row_typed_expression)  

Аргументы

entityset_identifier
Идентификатор набора сущностей, а не строковый литерал.

row_typed_expression
Строковое выражение, соответствующее ключевым свойствам типа сущности.

Замечания

row_typed_expression должен быть структурно эквивалентен типу ключа для сущности. То есть оно должно иметь одинаковое число и типы полей в том же порядке, что и ключи сущностей.

В приведенном ниже примере Order и BadOrders являются наборами сущностей типа Order, а идентификатор считается одним ключевым свойством Order. В этом примере показано, как можно создать ссылку на сущность в BadOrders. Обратите внимание, что ссылка может быть дана. То есть ссылка может не идентифицировать определенную сущность. В этих случаях операция с этой ссылкой DEREF возвращает значение NULL.

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

Пример

Следующий запрос Entity SQL использует оператор CREATEREF для создания ссылок на сущность в наборе сущностей. Запрос основан на модели продаж AdventureWorks. Чтобы скомпилировать и запустить этот запрос, выполните следующие действия.

  1. Выполните процедуру, описанную в разделе "Практическое руководство. Выполнение запроса, возвращающего результаты структурного типа".

  2. Передайте следующий запрос в качестве аргумента в ExecuteStructuralTypeQuery метод:

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

См. также