Compartilhar via


ISOF (Entity 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 o EDM. Resultado booliano 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 no qual testar expression . O tipo deve ser qualificado para namespace.

Valor de retorno

true se expression for do tipo T e T for um tipo base ou um tipo derivado de type; nulo se expression for nulo em runtime; 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 geradas do lado do cliente antes que o provedor seja invocado:

Padrão Comportamento
IS OF nulo (EntityType) Throws
IS OF nulo (ComplexType) Throws
IS OF nulo (RowType) Throws
TREAT (null AS EntityType) IS OF (EntityType) Retorna DBNull
TREAT (null AS ComplexType) IS OF (ComplexType) Throws
TREAT (null AS RowType) IS OF (RowType) Throws
EntityType IS OF (EntityType) Retorna true/false
ComplexType IS OF (ComplexType) Throws
RowType IS OF (RowType) Throws

Exemplo

A consulta SQL de entidade 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)]

Consulte também