Partager via


IS [NOT] OF (Entity SQL)

Détermine si le type d'une expression appartient au type spécifié ou à l'un de ses sous-types.

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

Arguments

  • expression
    Toute expression de requête valide pour en déterminer le type.
  • NOT
    Inverse le résultat Boolean de l'opérateur IS OF.
  • ONLY
    Indique que l'opérateur IS OF ne retourne true que si expression appartient au type type et non à l'un de ses sous-types.
  • type
    Type sur lequel tester expression. Le type doit être qualifié par un espace de noms.

Valeur de retour

true si expression est de type T, qui est soit un type de base, soit un type dérivé de type ; null si expression a la valeur null au moment de l'exécution ; sinon, false.

Notes

Les expressionsexpression IS NOT OF (type)etexpression IS NOT OF (ONLY type)sont du point de vue syntaxique équivalentes àNOT (expression IS OF (type))et NOT (expression IS OF (ONLY type)), respectivement.

Le tableau suivant indique le comportement de l'opérateur IS OF sur certains modèles courants et d'autres plus singuliers. Toutes les exceptions sont levées du côté client avant que le fournisseur ne soit appelé :

Modèle Comportement

null IS OF (EntityType)

Exception

null IS OF (ComplexType)

Exception

null IS OF (RowType)

Exception

TREAT (null AS EntityType) IS OF (EntityType)

Retourne DBNull

TREAT (null AS ComplexType) IS OF (ComplexType)

Exception

TREAT (null AS RowType) IS OF (RowType)

Exception

EntityType IS OF (EntityType)

Retourne true/false

ComplexType IS OF (ComplexType)

Exception

RowType IS OF (RowType)

Exception

Exemple

La requête Entité SQL ci-dessous utilise l'opérateur IS OF pour déterminer le type d'une expression de requête, puis utilise l'opérateur TREAT pour convertir un objet de type People en collection d'objets de type Student. Cette requête est basée sur le modèle School Entity Data Model. Pour obtenir des informations sur la façon de générer ce modèle, voir Génération du modèle Entity Data Model School (Démarrage rapide d'Entity Framework).

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

Cet exemple génère la sortie suivante :

Chow
Haas
Hamilton
Adams
Paschke
Abrus
Hance

Voir aussi

Concepts

Opérateurs de type [Entity SQL]
Référence Entity SQL