ISOF (Entity SQL)

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

Синтаксис

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

Аргументы

expression Любое допустимое выражение запроса для определения типа.

НЕ отрицает EDM. Логический результат IS OF.

ТОЛЬКО указывает, что IS OF возвращается true только в том случае, если expression тип type и не один из его подтипов.

type Тип для проверки expression . Для типа должно быть указано пространство имен.

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

true Значение , если expression имеет тип T и 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 для преобразования объекта type Course в коллекцию объектов типа OnsiteCourse. Запрос основан на модели School.

[!code-sql[DP EntityServices Concepts#TREAT_ISOF]~/samples/snippets/tsql/VS_Snippets_Data/dp entityservices concepts/tsql/entitysql.sql#treat_isof)]

См. также