Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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)]