Sdílet prostřednictvím


Sémantika porovnání (Entity SQL)

Provádění některého z následujících operátorů Entity SQL zahrnuje porovnání instancí typu:

Explicitní porovnání

Operace rovnosti:

  • =

  • !=

Operace řazení:

  • <

  • <=

  • >

  • >=

Operace s dostupností null:

  • je prázdné

  • IS NOT NULL

Explicitní rozlišení

Rozdíl rovnosti:

  • ODLIŠNÝ

  • SESKUPIT PODLE

Rozlišení řazení:

  • ŘADIT PODLE

Implicitní rozlišení

Nastavení operací a predikátů (rovnost):

  • UNIE

  • PRŮSEČÍK

  • KROMĚ

  • NASTAVIT

  • PŘEKRYVY

Predikáty položek (rovnost):

  • IN

Podporované kombinace

V následující tabulce jsou uvedeny všechny podporované kombinace operátorů porovnání pro každý typ typu:

Typ =

!=
seskupit podle

UNIKÁTNÍ
UNIE

PŘETÍNAT

EXCEPT

NASTAVIT

PŘEKRÝVÁ
IN < <=

> >=
ORDER BY JE NULL

IS NOT NULL
Typ entita Odkaz1 Všechny vlastnosti2 Všechny vlastnosti2 Všechny vlastnosti2 Hod3 Hod3 Odkaz1
Komplexní typ Hod3 Hod3 Hod3 Hod3 Hod3 Hod3 Hod3
Řada Všechny možnosti ubytování4 Všechny možnosti ubytování4 Všechny možnosti ubytování4 Hod3 Hod3 Všechny možnosti ubytování4 Hod3
Primitivní typ Specifické pro zprostředkovatele Specifické pro zprostředkovatele Specifické pro zprostředkovatele Specifické pro zprostředkovatele Specifické pro zprostředkovatele Specifické pro zprostředkovatele Specifické pro zprostředkovatele
Multiset Hod3 Hod3 Hod3 Hod3 Hod3 Hod3 Hod3
Sudí Ano5 Ano5 Ano5 Ano5 Hodit Hodit Ano5
Sdružení

typ
Hod3 Hodit Hodit Hodit Hod3 Hod3 Hod3

1Odkazy na instance daného typu entity se implicitně porovnávají, jak je znázorněno v následujícím příkladu:

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

Instanci entity nelze porovnat s explicitním odkazem. Pokud se o to pokusíte, vyvolá se výjimka. Například následující dotaz vyvolá výjimku:

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

2Vlastnosti složitých typů jsou před odesláním do úložiště zploštěny, takže se stanou srovnatelnými (pokud jsou všechny jejich vlastnosti srovnatelné). Viz také 4.

3Modul runtime Entity Framework zjistí nepodporovaný případ a vyvolá smysluplnou výjimku bez zapojení poskytovatele nebo úložiště.

4Provede se pokus o porovnání všech vlastností. Pokud existuje vlastnost, která je nerovná typu, například text, ntext nebo obrázek, může být vyvolán výjimka serveru.

5Porovná se všechny jednotlivé prvky odkazů (to zahrnuje název sady entit a všechny klíčové vlastnosti typu entity).

Viz také