Partilhar via


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.

Valor de retorno

true se expression é do tipo T e T é ou um tipo base, ou um tipo derivado de type; nulo se expression for nulo em tempo de 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) Throws
nulo É DE (ComplexType) Throws
null IS OF (RowType) Throws
TREAT (null AS EntityType) IS OF (EntityType) Retorna DBNull
TREAT (null AS ComplexType) IS OF (ComplexType) Throws
TREAT (null AS RowType) É OF (RowType) Throws
EntityType IS OF (EntityType) Devolve verdadeiro/falso
ComplexType IS OF (ComplexType) Throws
RowType IS OF (RowType) Throws

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)]

Ver também