ISOF (Entity SQL)
Determina se o tipo de uma expressão é do tipo especificado ou um de seus subtipos.
Sintaxe
expression IS [ NOT ] OF ( [ ONLY ] type )
Argumentos
expression
Qualquer expressão de consulta válida para determinar o tipo de.
NÃO Nega o resultado EDM.Boolean de IS OF.
ONLY Especifica que IS OF retorna true
somente se expression
é do tipo type
e não qualquer um de seus subtipos.
type
O tipo contra o qual testar expression
. O tipo URL deve ser qualificada.
Valor Retornado
true
se expression
é do tipo T e T é um tipo base, ou um tipo derivado de type
; nulo se expression
for nulo no runtime; caso contrário, false
.
Comentários
As expressões expression IS NOT OF (type)
e expression IS NOT OF (ONLY type)
são sintaticamente equivalentes a NOT (expression IS OF (type))
e NOT (expression IS OF (ONLY type))
, respectivamente.
A tabela a seguir mostra o comportamento do operador de IS OF
sobre alguns padrões e típicos do canto. Todas as exceções são geradas do lado do cliente antes que o provedor obtenha chamado:
Padrão | Comportamento |
---|---|
o zero ESTÁ DE (EntityType) | Gera |
o zero ESTÁ DE (ComplexType) | Gera |
o zero ESTÁ DE (RowType) | Gera |
O DELEITE (zero) COMO EntityType ESTÁ DE (EntityType) | Retorna DBNull |
O DELEITE (zero) COMO ComplexType ESTÁ DE (ComplexType) | Gera |
O DELEITE (zero) COMO RowType ESTÁ DE (RowType) | Gera |
EntityType ESTÁ DE (EntityType) | Retorna retificam/falso |
ComplexType ESTÁ DE (ComplexType) | Gera |
RowType ESTÁ DE (RowType) | Gera |
Exemplo
A consulta do Entity SQL a seguir usa o operador IS OF para determinar o tipo de expressão de consulta e, em seguida, usa o operador TREAT para converter um objeto do tipo Course em uma coleção de objetos do tipo OnsiteCourse. A consulta é baseada no Modelo de Escola.
[!code-sql[DP EntityServices Concepts#TREAT_ISOF]~/samples/snippets/tsql/VS_Snippets_Data/dp entityservices concepts/tsql/entitysql.sql#treat_isof)]