IS [NOT] OF(Entity SQL)
식의 형식이 지정된 형식 또는 그 하위 형식인지 여부를 확인합니다.
expression IS [ NOT ] OF ( [ ONLY ] type )
인수
- expression
형식을 결정할 수 있는 모든 유효한 쿼리 식입니다.
- NOT
IS OF의 EDM.Boolean 결과를 부정합니다.
- ONLY
expression이 type 형식이며 그 하위 형식이 아닌 경우에만 IS OF가 true를 반환하도록 지정합니다.
- type
expression을 테스트할 형식입니다. 형식은 네임스페이스로 한정되어야 합니다.
반환 값
expression이 T 형식이며 T가 기본 형식이거나 type의 파생 형식인 경우 true이고, expression이 런타임에 null인 경우 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 연산자의 동작을 보여 줍니다. 공급자 호출 이전에 모든 예외가 클라이언트 쪽에서 throw됩니다.
패턴 | 동작 |
---|---|
null IS OF(EntityType) |
throw |
null IS OF(ComplexType) |
throw |
null IS OF(RowType) |
throw |
TREAT(null AS EntityType) IS OF(EntityType) |
DBNull 반환 |
TREAT(null AS ComplexType) IS OF(ComplexType) |
throw |
TREAT(null AS RowType) IS OF(RowType) |
throw |
EntityType IS OF(EntityType) |
true/false 반환 |
ComplexType IS OF(ComplexType) |
throw |
RowType IS OF(RowType) |
throw |
예제
다음 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)