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


Type System (Entity SQL)

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

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

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

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

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

Строки

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

Коллекции

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

Ссылки

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

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

Вы можете перейти по ссылке с помощью оператора. доступа к члену (dot). Следующий фрагмент кода извлекает свойство Id (of Order), перейдя по свойству r (reference).

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

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

См. также