Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяет, является ли тип выражения указанным типом или одним из его подтипов.
Синтаксис
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)]