IS [NOT] OF (язык Entity SQL)

Определяет, относится ли тип выражения к указанному типу или одному из его подтипов.

expression IS [ NOT ] OF ( [ ONLY ] type )

Аргументы

  • expression
    Любое допустимое выражение запроса для определения типа.
  • NOT
    Выполняет отрицание результата EDM.Boolean для IS OF.
  • ONLY
    Указывает, что оператор IS OF возвращает значение true только в том случае, если выражение expression относится к типу type, а не одному из его подтипов.
  • type
    Тип, по которому проверяется выражение expression. Для типа должно быть указано пространство имен.

Возвращаемое значение

Значение true, если выражение expression относится к типу T, который является либо базовым типом, либо производным типом от типа type. Значение null, если выражение expression во время выполнения имеет значение null. В противном случае — значение false.

Замечания

Выражения expression IS NOT OF (type) и expression IS NOT OF (ONLY type) являются синтаксическими эквивалентами выражений NOT (expression IS OF (type)) и NOT (expression IS OF (ONLY type)) соответственно.

В следующей таблице показано, каким образом оператор IS OF работает с некоторыми стандартными и нестандартными конструкциями. Все исключения формируются на стороне клиента перед вызовом поставщика.

Шаблон Поведение

null IS OF (EntityType)

Формирует исключение

null IS OF (ComplexType)

Формирует исключение

null IS OF (RowType)

Формирует исключение

TREAT (null AS EntityType) IS OF (EntityType)

Возвращает DBNull

TREAT (null AS ComplexType) IS OF (ComplexType)

Формирует исключение

TREAT (null AS RowType) IS OF (RowType)

Формирует исключение

EntityType IS OF (EntityType)

Возвращает значение true или false

ComplexType IS OF (ComplexType)

Формирует исключение

RowType IS OF (RowType)

Формирует исключение

Пример

В следующем запросе Entity SQL оператор IS OF используется для определения типа выражения запроса, а затем оператор TREAT преобразует объект типа Course в коллекцию объектов типа OnsiteCourse. Запрос основан на примере School, модель.

SELECT VALUE TREAT (course as SchoolModel.OnsiteCourse) 
   FROM SchoolEntities.Courses as course
   WHERE course IS OF( SchoolModel.OnsiteCourse)

См. также

Основные понятия

Справочник по Entity SQL