Semantyka porównania (Entity SQL)
Wykonanie dowolnego z następujących operatorów Entity SQL obejmuje porównanie wystąpień typu:
Porównanie jawne
Operacje równości:
=
!=
Operacje porządkowania:
<
<=
>
>=
Operacje dopuszczania wartości null:
IS NULL
NIE MA WARTOŚCI NULL
Jawne rozróżnienie
Rozróżnienie równości:
ODRĘBNE
GROUP BY
Rozróżnienie porządkowania:
- ORDER BY
Rozróżnienie niejawne
Ustawianie operacji i predykatów (równość):
UNION
INTERSECT
EXCEPT
SET
OVERLAPS
Predykaty elementów (równość):
- IN
Obsługiwane kombinacje
W poniższej tabeli przedstawiono wszystkie obsługiwane kombinacje operatorów porównania dla każdego typu:
Type | = != |
GROUP BY ODRĘBNE |
UNION INTERSECT EXCEPT SET OVERLAPS |
IN | <<= >>= |
ORDER BY | IS NULL NIE MA WARTOŚCI NULL |
---|---|---|---|---|---|---|---|
Typ encji | Odwołanie1 | Wszystkie właściwości2 | Wszystkie właściwości2 | Wszystkie właściwości2 | Rzut3 | Rzut3 | Odwołanie1 |
Typ złożony | Rzut3 | Rzut3 | Rzut3 | Rzut3 | Rzut3 | Rzut3 | Rzut3 |
Wiersz | Wszystkie właściwości4 | Wszystkie właściwości4 | Wszystkie właściwości4 | Rzut3 | Rzut3 | Wszystkie właściwości4 | Rzut3 |
Typ pierwotny | Specyficzne dla dostawcy | Specyficzne dla dostawcy | Specyficzne dla dostawcy | Specyficzne dla dostawcy | Specyficzne dla dostawcy | Specyficzne dla dostawcy | Specyficzne dla dostawcy |
Zestaw wielokrotny | Rzut3 | Rzut3 | Rzut3 | Rzut3 | Rzut3 | Rzut3 | Rzut3 |
Ref | Tak5 | Tak5 | Tak5 | Tak5 | Throw | Throw | Tak5 |
Skojarzenie type |
Rzut3 | Throw | Throw | Throw | Rzut3 | Rzut3 | Rzut3 |
1Odwołania do danego wystąpienia typu jednostki są niejawnie porównywane, jak pokazano w poniższym przykładzie:
SELECT p1, p2
FROM AdventureWorksEntities.Product AS p1
JOIN AdventureWorksEntities.Product AS p2
WHERE p1 != p2 OR p1 IS NULL
Nie można porównać wystąpienia jednostki z jawnym odwołaniem. Jeśli zostanie podjęta taka próba, zostanie zgłoszony wyjątek. Na przykład następujące zapytanie zgłosi wyjątek:
SELECT p1, p2
FROM AdventureWorksEntities.Product AS p1
JOIN AdventureWorksEntities.Product AS p2
WHERE p1 != REF(p2)
2Właściwości typów złożonych są spłaszczone przed wysłaniem do sklepu, więc stają się porównywalne (o ile wszystkie ich właściwości są porównywalne). Zobacz również 4.
3Środowisko uruchomieniowe platformy Entity Framework wykrywa nieobsługiwany przypadek i zgłasza znaczący wyjątek bez angażowania dostawcy/sklepu.
4Podjęto próbę porównania wszystkich właściwości. Jeśli istnieje właściwość, która nie jest porównywalnym typem, takim jak tekst, ntext lub obraz, może zostać zgłoszony wyjątek serwera.
5Wszystkie poszczególne elementy odwołań są porównywane (obejmuje to nazwę zestawu jednostek i wszystkie właściwości klucza typu jednostki).