Compartir a través de


IS [NOT] OF (Entity SQL)

Determina si el tipo de una expresión es del tipo especificado o uno de sus subtipos.

expression IS [ NOT ] OF ( [ ONLY ] type )

Argumentos

  • expression
    Cualquier expresión de consulta válida de la que se va a determinar el tipo.
  • NOT
    Niega el resultado Boolean de IS OF.
  • ONLY
    Especifica que IS OF devuelve true sólo si expression es de tipo type y no cualquiera de uno de sus subtipos.
  • type
    Tipo con el que se va a probar expression. El tipo debe estar certificado por el espacio de nombres.

Valor devuelto

true si expression es de tipo T y T es un tipo base o un tipo derivado de type; NULL si expression es nulo en tiempo de ejecución; de lo contrario, false.

Comentarios

Las expresionesexpression IS NOT OF (type)yexpression IS NOT OF (ONLY type)son sintácticamente equivalentes aNOT (expression IS OF (type))y NOT (expression IS OF (ONLY type)), respectivamente.

En la tabla siguiente se muestra el comportamiento del operador IS OF en algunos patrones de esquina típicos. Todas las excepciones se producen en el cliente antes de que se llame al proveedor:

Patrón Comportamiento

null IS OF (EntityType)

Produce

null IS OF (ComplexType)

Produce

null IS OF (RowType)

Produce

TREAT (null AS EntityType) IS OF (EntityType)

Devuelve DBNull

TREAT (null AS ComplexType) IS OF (ComplexType)

Produce

TREAT (null AS RowType) IS OF (RowType)

Produce

EntityType IS OF (EntityType)

Devuelve true o false.

ComplexType IS OF (ComplexType)

Produce

RowType IS OF (RowType)

Produce

Ejemplo

La consulta de Entity SQL siguiente utiliza el operador IS OF para determinar el tipo de una expresión de consulta y, a continuación, utiliza el operador TREAT para convertir un objeto del tipo People en una colección de objetos del tipo Student. La consulta se basa en Entity Data Model School. Para obtener información sobre cómo generar este modelo, vea Generar el Entity Data Model School (Tutorial rápido de Entity Framework).

SELECT VALUE TREAT (people as SchoolDataLib.Student) 
    FROM SchoolDataEntities.People as people 
    WHERE people IS OF( SchoolDataLib.Student)

Este ejemplo genera el siguiente resultado:

Chow
Haas
Hamilton
Adams
Paschke
Abrus
Hance

Vea también

Conceptos

Operadores de tipo (Entity SQL)
Referencia de Entity SQL