Freigeben über


Vergleichssemantik (Entity SQL)

Beim Ausführen jedes der folgenden Entity SQL-Operatoren werden Typinstanzen verglichen:

Expliziter Vergleich

Gleichheitsoperationen:

  • =

  • !=

Sortieroperationen:

  • <

  • <=

  • >

  • >=

NULL-Zulässigkeitsoperationen:

  • IS NULL

  • IS NOT NULL

Explizite Unterscheidung

Gleichheitsunterscheidung:

  • DISTINCT

  • GROUP BY

Sortierunterscheidung:

  • ORDER BY

Implizite Unterscheidung

Mengenoperationen und Prädikate (Gleichheit):

  • UNION

  • INTERSECT

  • EXCEPT

  • SET

  • OVERLAPS

Elementprädikate (Gleichheit):

  • IN

Unterstützte Kombinationen

In der folgenden Tabelle werden alle unterstützten Kombinationen von Vergleichsoperatoren für jede Art von Typ angezeigt:

Typ =

!=
GROUP BY

DISTINCT
UNION

INTERSECT

EXCEPT

SET

OVERLAPS
IN <<=

>>=
ORDER BY IS NULL

IS NOT NULL
Entitätstyp Ref1 Alle Eigenschaften2 Alle Eigenschaften2 Alle Eigenschaften2 Auslösen3 Auslösen3 Ref1
Komplexer Typ Auslösen3 Auslösen3 Auslösen3 Auslösen3 Auslösen3 Auslösen3 Auslösen3
Zeile Alle Eigenschaften4 Alle Eigenschaften4 Alle Eigenschaften4 Auslösen3 Auslösen3 Alle Eigenschaften4 Auslösen3
Primitiver Typ Anbieterspezifisch Anbieterspezifisch Anbieterspezifisch Anbieterspezifisch Anbieterspezifisch Anbieterspezifisch Anbieterspezifisch
Multiset Auslösen3 Auslösen3 Auslösen3 Auslösen3 Auslösen3 Auslösen3 Auslösen3
Ref Ja5 Ja5 Ja5 Ja5 Throw Throw Ja5
Zuordnung

Typ
Auslösen3 Throw Throw Throw Auslösen3 Auslösen3 Auslösen3

1Die Verweise der angegebenen Entitätstypinstanzen werden implizit verglichen, wie im folgenden Beispiel gezeigt:

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

Eine Entitätsinstanz kann nicht mit einem expliziten Verweis verglichen werden. Eine Ausnahme wird ausgelöst, wenn dies versucht wird. Folgende Abfrage löst beispielsweise eine Ausnahme aus:

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

2Eigenschaften komplexer Typen werden vor dem Speichern vereinfacht, sodass sie vergleichbar werden (sofern alle ihre Eigenschaften vergleichbar sind). Siehe auch 4.

3Die Entity Framework-Laufzeit erkennt den nicht unterstützten Fall und löst eine angemessene Ausnahme aus, ohne den Anbieter/Speicher in Anspruch zu nehmen.

4Es wird versucht, alle Eigenschaften zu vergleichen. Wenn eine Eigenschaft einen nicht vergleichbaren Typ hat, wie beispielsweise text, ntext oder image, kann eine Serverausnahme ausgelöst werden.

5Alle Einzelelemente der Verweise werden verglichen (einschließlich des Namens der Entitätenmenge und aller Schlüsseleigenschaften des Entitätstyps).

Siehe auch