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


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) Throws
NULL IS (ComplexType) Throws
NULL IS OF (RowType) Throws
TREAT (NULL AS EntityType) IS (EntityType) (EntityType) Возвращает DBNull
TREAT (NULL AS ComplexType) IS OF (ComplexType) (ComplexType) Throws
TREAT (NULL AS RowType) IS (RowType) (RowType) Throws
EntityType IS (EntityType) Возвращает значение true/false
ComplexType IS OF (ComplexType) Throws
RowType IS (RowType) Throws

Пример

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

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

См. также