ISOF(Entity SQL)
식의 형식이 지정된 형식 또는 그 하위 형식인지 여부를 확인합니다.
구문
expression IS [ NOT ] OF ( [ ONLY ] type )
인수
expression
형식을 결정할 수 있는 유효한 쿼리 식입니다.
IS OF의 EDM.Boolean 결과를 부정하지 않습니다.
expression
이 type
형식이며 해당 하위 형식이 아닌 경우에만 IS OF가 true
를 반환하도록 지정합니다.
type
expression
을 테스트할 형식입니다. 형식은 네임스페이스로 한정되어야 합니다.
Return Value
true
이 T 형식이며 T가 기본 형식이거나 expression
의 파생 형식인 경우 type
이고, 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 모델을 기반으로 합니다.
[!code-sql[DP EntityServices Concepts#TREAT_ISOF]~/samples/snippets/tsql/VS_Snippets_Data/dp entityservices concepts/tsql/entitysql.sql#treat_isof)]