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


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. Для компиляции и запуска этого запроса выполните следующие шаги.

  1. Следуйте инструкциям раздела Как выполнить запрос, возвращающий результаты типа StructuralType (EntityClient).

  2. Передайте методу 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)