Partager via


Sémantique de comparaison (Entity SQL)

L’exécution de l’un des opérateurs Entity SQL suivants implique la comparaison des instances de type :

Comparaison explicite

Opérations d’égalité :

  • =

  • !=

Opérations de classement :

  • <

  • <=

  • >

  • >=

Opérations de nullabilité :

  • EST NUL

  • N’EST PAS NULL

Distinction explicite

Distinction d’égalité :

  • DISTINCTIF

  • REGROUPER PAR

Distinction de classement :

  • ORDONNER PAR

Distinction implicite

Définir des opérations et des prédicats (égalité) :

  • UNION

  • INTERSECT

  • EXCEPT

  • SET

  • CHEVAUCHEMENTS

Prédicats d’élément (égalité) :

  • DANS

Combinaisons prises en charge

Le tableau suivant présente toutes les combinaisons prises en charge d’opérateurs de comparaison pour chaque type de type :

Type =

!=
REGROUPER PAR

DISTINCT
UNION

INTERSECT

EXCEPT

SET

OVERLAPS
IN < <=

> >=
ORDER BY IS NULL

N’EST PAS NULL
Type d’entité Ref1 Toutes les propriétés2 Toutes les propriétés2 Toutes les propriétés2 Lever3 Lever3 Ref1
Type complexe Lever3 Lever3 Lever3 Lever3 Lever3 Lever3 Lever3
Ligne Toutes les propriétés4 Toutes les propriétés4 Toutes les propriétés4 Lever3 Lever3 Toutes les propriétés4 Lever3
Type primitif Spécifique au fournisseur Spécifique au fournisseur Spécifique au fournisseur Spécifique au fournisseur Spécifique au fournisseur Spécifique au fournisseur Spécifique au fournisseur
Multiset Lever3 Lever3 Lever3 Lever3 Lever3 Lever3 Lever3
Ref Oui5 Oui5 Oui5 Oui5 Jeter Jeter Oui5
Association

type
Lever3 Jeter Jeter Jeter Lever3 Lever3 Lever3

1Les références des instances de type d’entité données sont implicitement comparées, comme illustré dans l’exemple suivant :

SELECT p1, p2
FROM AdventureWorksEntities.Product AS p1
     JOIN AdventureWorksEntities.Product AS p2
WHERE p1 != p2 OR p1 IS NULL

Une instance d’entité ne peut pas être comparée à une référence explicite. Si cette tentative est effectuée, une exception est levée. Par exemple, la requête suivante lève une exception :

SELECT p1, p2
FROM AdventureWorksEntities.Product AS p1
     JOIN AdventureWorksEntities.Product AS p2
WHERE p1 != REF(p2)

deuxLes propriétés de types complexes sont aplatissements avant d’être envoyées au magasin, de sorte qu’elles deviennent comparables (tant que toutes leurs propriétés sont comparables). Voir aussi 4.

3Le runtime Entity Framework détecte le cas non pris en charge et lève une exception significative sans impliquer le fournisseur/magasin.

4Une tentative est effectuée pour comparer toutes les propriétés. S’il existe une propriété qui est d’un type non comparable, tel que du texte, du ntext ou de l’image, une exception de serveur peut être levée.

5Tous les éléments individuels des références sont comparés (cela inclut le nom du jeu d’entités et toutes les propriétés clés du type d’entité).

Voir aussi