ISOF (Entidade SQL)
Determina se o tipo de uma expressão é do tipo especificado ou de 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 a EDM. Resultado booleano de IS OF.
ONLY Especifica que IS OF retorna true
somente se expression
for do tipo type
e não qualquer um de seus subtipos.
type
O tipo contra o qual testar expression
. O tipo deve ser qualificado para namespace.
Devolver Valor
true
se expression
é do tipo T e T é um tipo base, ou um tipo derivado de ; null se expression
é nulo em tempo de type
execução; caso contrário, false
.
Observações
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 IS OF
operador em alguns padrões típicos e de canto. Todas as exceções são lançadas do lado do cliente antes que o provedor seja invocado:
Padrão | Comportamento |
---|---|
null IS OF (EntityType) | Lançamentos |
null IS OF (ComplexType) | Lançamentos |
null IS OF (RowType) | Lançamentos |
TREAT (null AS EntityType) IS OF (EntityType) | Retorna DBNull |
TREAT (null AS ComplexType) IS OF (ComplexType) | Lançamentos |
TREAT (null AS RowType) É OF (RowType) | Lançamentos |
EntityType IS OF (EntityType) | Devolve verdadeiro/falso |
ComplexType IS OF (ComplexType) | Lançamentos |
RowType IS OF (RowType) | Lançamentos |
Exemplo
A consulta Entity SQL a seguir usa o operador IS OF para determinar o tipo de uma 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 baseia-se no Modelo de Escola.
[!code-sql[Conceitos de DP EntityServices#TREAT_ISOF]~/samples/snippets/tsql/VS_Snippets_Data/dp entityservices concepts/tsql/entitysql.sql#treat_isof)]