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.

Devolver Valor

truese expression é do tipo T e T é um tipo base, ou um tipo derivado de ; null se expression é nulo em tempo de typeexecuçã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)]

Consulte também