Поделиться через


Семантика сравнения (Entity SQL)

Выполнение любого из следующих операторов Entity SQL включает сравнение экземпляров типов:

Явное сравнение

Операции равенства:

  • =

  • !=

Операции упорядочивания:

  • <

  • <=

  • >

  • >=

Операции с возможностью null:

  • ЯВЛЯЕТСЯ NULL

  • НЕ ИМЕЕТ ЗНАЧЕНИЯ NULL

Явное различие

Различие равенства:

  • УНИКАЛЬНЫЙ

  • ГРУППИРОВКА ПО

Упорядочение:

  • ORDER BY (СОРТИРОВАТЬ ПО)

Неявное различие

Установка операций и предикатов (равенство):

  • СОЮЗ

  • ПЕРЕСЕЧЕНИЕ

  • КРОМЕ

  • УСТАНОВКА

  • Перекрытия

Предикаты элементов (равенство):

  • В

Поддерживаемые сочетания

В следующей таблице показаны все поддерживаемые сочетания операторов сравнения для каждого типа:

Тип =

!=
ГРУППИРОВКА ПО

УНИКАЛЬНО
СОЮЗ

ПЕРЕСЕЧЕНИЕ

EXCEPT

НАБОР

ПЕРЕКРЫВАЕТ
IN < <=

> >=
ORDER BY IS NULL

НЕ ИМЕЕТ ЗНАЧЕНИЯ NULL
Тип сущности Ссылка1 Все свойства2 Все свойства2 Все свойства2 Бросок3 Бросок3 Ссылка1
Сложный тип Бросок3 Бросок3 Бросок3 Бросок3 Бросок3 Бросок3 Бросок3
Строка Все свойства4 Все свойства4 Все свойства4 Бросок3 Бросок3 Все свойства4 Бросок3
Примитивный тип Зависит от поставщика Зависит от поставщика Зависит от поставщика Зависит от поставщика Зависит от поставщика Зависит от поставщика Зависит от поставщика
Многоустановка Бросок3 Бросок3 Бросок3 Бросок3 Бросок3 Бросок3 Бросок3
Ссылка Да5 Да5 Да5 Да5 Бросать Бросать Да5
Ассоциация

тип
Бросок3 Бросать Бросать Бросать Бросок3 Бросок3 Бросок3

1Ссылки на указанные экземпляры типа сущности неявно сравниваются, как показано в следующем примере:

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

Экземпляр сущности нельзя сравнить с явной ссылкой. Если эта попытка предпринята, создается исключение. Например, следующий запрос вызовет исключение:

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

2Свойства сложных типов выравниваются перед отправкой в магазин, поэтому они становятся сопоставимыми (если все их свойства сопоставимы). См. также 4.

3Среда выполнения Entity Framework обнаруживает неподдерживаемый случай и создает понятное исключение без привлечения поставщика или хранилища.

4Предпринята попытка сравнить все свойства. Если есть свойство, которое имеет несовершенный тип, например текст, ntext или изображение, может быть вызвано исключение сервера.

5Сравниваются все отдельные элементы ссылок (это включает имя набора сущностей и все ключевые свойства типа сущности).

См. также