Freigeben über


Comparison Semantics (Entity SQL)

Das Ausführen einer der folgenden Entitäts-SQL-Operatoren umfasst einen Vergleich von Typinstanzen:

Expliziter Vergleich

Gleichheitsvorgänge:

  • =

  • !=

Sortiervorgänge:

  • <

  • <=

  • >

  • >=

Nullierbarkeitsvorgänge:

  • IS NULL

  • IS NOT NULL

Explizite Unterscheidung

Gleichheitsunterschied:

  • EINDEUTIG

  • GRUPPIEREN NACH

Sortierungsunterschied:

  • SORTIEREN NACH

Implizite Unterscheidung

Festlegen von Vorgängen und Prädikaten (Gleichheit):

  • VEREINIGUNG

  • SCHNITTSTELLE

  • außer

  • SET

  • ÜBERSCHNEIDUNGEN

Element-Prädikate (Gleichheit):

  • IN

Unterstützte Kombinationen

In der folgenden Tabelle sind alle unterstützten Kombinationen von Vergleichsoperatoren für jeden Typ aufgeführt:

Typ =

!=
GRUPPIEREN NACH

DISTINCT
VEREINIGUNG

SCHNITT

EXCEPT

SET

ÜBERSCHNEIDUNGEN
IN < <=

> >=
BESTELLUNG NACH IS NULL

IS NOT NULL
Entitätstyp Bezug1 Alle Eigenschaften2 Alle Eigenschaften2 Alle Eigenschaften2 Auslösen3 Auslösen3 Bezug1
Komplexer Typ Auslösen3 Auslösen3 Auslösen3 Auslösen3 Auslösen3 Auslösen3 Auslösen3
Reihe 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
Schiedsrichter Ja5 Ja5 Ja5 Ja5 Werfen Werfen Ja5
Verein

Typ
Auslösen3 Werfen Werfen Werfen Auslösen3 Auslösen3 Auslösen3

1Die Verweise auf die 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. Wenn dies versucht wird, wird eine Ausnahme ausgelöst. Die 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)

arabische ZifferEigenschaften komplexer Typen werden abgeflacht, bevor sie an den Laden gesendet werden, sodass sie vergleichbar werden (solange alle ihre Eigenschaften vergleichbar sind). Siehe auch 4.

3Die Entity Framework-Laufzeit erkennt den nicht unterstützten Fall und löst eine sinnvolle Ausnahme aus, ohne den Anbieter/Store zu verwenden.

4Es wird versucht, alle Eigenschaften zu vergleichen. Wenn es eine Eigenschaft gibt, die einen nicht vergleichbaren Typ aufweist, z. B. Text, ntext oder Bild, wird möglicherweise eine Server-Ausnahme ausgelöst.

5Alle einzelnen Elemente der Verweise werden verglichen (dazu gehören der Entitätssatzname und alle Schlüsseleigenschaften des Entitätstyps).

Siehe auch