CREATEREF (Entity SQL)
Формирует ссылки на сущность в наборе сущностей.
CreateRef(entityset_identifier, row_typed_expression)
Аргументы
- entityset_identifier
Идентификатор набора сущностей, а не строковый литерал.
- row_typed_expression
Выражение типа строки таблицы, соответствующее свойствам ключа типа сущности.
Замечания
Выражение row_typed_expression должно быть структурно эквивалентно типу ключа для данной сущности. Это значит, что оно должно иметь такое же число и типы полей, расположенные в том же порядке, как и ключи сущности.
В приведенном далее примере Orders и BadOrders являются наборами сущностей типа Order, и предполагается, что идентификатор Id является единственным свойством ключа для типа Order. Этот пример иллюстрирует, как можно сформировать ссылку на сущность в наборе сущностей BadOrders. Отметим, что ссылка может быть висячей. Это значит, что в действительности ссылка может не указывать на конкретную сущность. В этом случае оператор DEREF для этой ссылки возвратит значение null.
select CreateRef(LOB.BadOrders, row(o.Id))
from LOB.Orders as o
Примеры
В следующем запросе Entity SQL оператор CREATEREF используется для формирования ссылок на сущность в наборе сущностей. Запрос основан на модели AdventureWorks Sales. Для компиляции и запуска этого запроса выполните следующие шаги.
Следуйте инструкциям раздела Как выполнить запрос, возвращающий результаты типа StructuralType (EntityClient).
Передайте методу
ExecuteStructuralTypeQuery
следующий запрос в качестве аргумента.
SELECT VALUE Key(CreateRef(AdventureWorksEntities.Product,
row(p.ProductID))) FROM AdventureWorksEntities.Product as p
Далее показан вывод.
ProductID: 980
ProductID: 365
ProductID: 771
ProductID: 404
ProductID: 977
...
См. также
Справочник
DEREF (язык Entity SQL)
KEY (язык Entity SQL)
REF (язык Entity SQL)
Основные понятия
Справочник по Entity SQL
Ссылочные операторы (язык Entity SQL)