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


Система типов (Entity SQL)

Entity SQL поддерживает ряд типов:

  • Типы-примитивы (простые типы), такие как Int32 и String.

  • Номинальные типы, которые определяются в схеме, например EntityType, ComplexType и RelationshipType.

  • Анонимные типы, которые явно не определяются в схеме: CollectionType, RowType и RefType.

В этом разделе рассматриваются анонимные типы, которые не определены в схеме явно, но поддерживаются Entity SQL. Сведения о примитивных и номинальных типах см. в разделе "Концептуальные типы моделей" (CSDL).

Строки

Структура строки зависит от последовательности типизированных и именованных элементов, из которых состоит строка. Тип строки не имеет идентификатора и не может наследоваться. Экземпляры строк одинакового типа считаются равными, если равны соответствующие элементы этих строк. Со строками не связаны операции, отличные от проверки равнозначности их структуры, к тому же они не имеют эквивалентов в среде CLR. Запросы могут возвращать структуры, содержащие строки или коллекции строк. Привязка API между запросами Entity SQL и языком узла определяет, как строки реализуются в запросе, создающем результат. Сведения о создании экземпляра строки см. в разделе "Конструктор типов".

Коллекции

Типы коллекций представляют ноль и более экземпляров других объектов. Сведения о создании коллекции см. в разделе "Создание типов".

Ссылки

Ссылка - это логический указатель на отдельную сущность в определенном наборе сущностей.

Entity SQL поддерживает следующие операторы для создания, деконструкции и перехода по ссылкам:

По ссылке можно переходить с помощью оператора доступа к элементам «точка» (.). В следующем фрагменте извлекается свойство Id (объекта Order) путем перехода по свойству r (сокращение от reference).

select o2.r.Id
from (select ref(o) as r from LOB.Orders as o) as o2

Если ссылка имеет значение NULL или цель ссылки не существует, результатом становится NULL.

См. также