IS [NOT] OF(Entity SQL)
식의 형식이 지정된 형식 또는 그 하위 형식인지 여부를 결정합니다.
expression IS [ NOT ] OF ( [ ONLY ] type )
인수
- expression
형식을 결정할 수 있는 모든 유효한 쿼리 식입니다.
- NOT
IS OF의 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 연산자를 사용하여 People 형식의 개체를 Student 형식 개체의 컬렉션으로 변환합니다. 쿼리는 School 엔터티 데이터 모델을 기반으로 합니다. 이 모델 생성 방법에 대한 자세한 내용은 School 엔터티 데이터 모델 생성(Entity Framework 퀵 스타트)을 참조하십시오.
SELECT VALUE TREAT (people as SchoolDataLib.Student)
FROM SchoolDataEntities.People as people
WHERE people IS OF( SchoolDataLib.Student)
이 예제의 결과는 다음과 같습니다.
Chow
Haas
Hamilton
Adams
Paschke
Abrus
Hance