Partager via


ISOF (Entity SQL)

Détermine si le type d’une expression est du type spécifié ou de l’un de ses sous-types.

Syntaxe

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

Les arguments

expression Toute expression de requête valide pour déterminer le type de.

NOT Ne annule pas l’EDM. Résultat booléen de IS OF.

ONLY Spécifie que IS OF retourne true uniquement s’il expression s’agit d’un type type et non d’un de ses sous-types.

type Type à tester expression . Le type doit être qualifié par l’espace de noms.

Valeur de retour

true si expression est de type T et T est soit un type de base, soit un type dérivé de type; null s’il expression est null au moment de l’exécution ; sinon, false.

Remarques

Les expressions expression IS NOT OF (type) et expression IS NOT OF (ONLY type) sont respectivement équivalentes à NOT (expression IS OF (type)) et NOT (expression IS OF (ONLY type)), respectivement.

Le tableau suivant montre le comportement de l’opérateur IS OF sur certains modèles typiques et d’angle. Toutes les exceptions sont levées du côté client avant que le fournisseur soit appelé :

Modèle Comportement
NULL IS OF (EntityType) Throws
NULL IS OF (ComplexType) Throws
NULL IS OF (RowType) Throws
TREAT (null AS EntityType) IS OF (EntityType) Retourne DBNull
TREAT (Null AS ComplexType) IS OF (ComplexType) Throws
TREAT (Null AS RowType) IS OF (RowType) Throws
EntityType IS OF (EntityType) Retourne true/false
ComplexType IS OF (ComplexType) Throws
RowType IS OF (RowType) Throws

Exemple :

La requête Entity SQL suivante 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 du type Course en collection d’objets du type OnsiteCourse. La requête est basée sur le modèle scolaire.

[ !code-sql[Dp EntityServices Concepts#TREAT_ISOF]~/samples/snippets/tsql/VS_Snippets_Data/dp entityservices concepts/tsql/entitysql.sql#treat_isof)]

Voir aussi