Partilhar via


Semântica de comparação (Entity SQL)

A execução de qualquer um dos seguintes operadores Entity SQL envolve a comparação de instâncias de tipo:

Comparação explícita

Operações de igualdade:

  • =

  • !=

Operações de encomenda:

  • <

  • <=

  • >

  • >=

Operações de anulabilidade:

  • É NULA:

  • NÃO É NULO

Distinção explícita

Distinção de igualdade:

  • DISTINTOS

  • GROUP BY

Distinção de ordenação:

  • ORDER BY

Distinção implícita

Definir operações e predicados (igualdade):

  • UNION

  • INTERSECT

  • EXCETO

  • SET

  • SOBREPOSIÇÕES

Predicados do item (igualdade):

  • IN

Combinações suportadas

A tabela a seguir mostra todas as combinações suportadas de operadores de comparação para cada tipo de tipo:

Tipo =

!=
GRUPO POR

DISTINTOS
UNIÃO

CRUZAMENTO

EXCETO

SET

SOBREPOSIÇÕES
EM <<=

>>=
ENCOMENDAR POR É NULA:

NÃO É NULO
Tipo de entidade Refª1 Todos os imóveis2 Todos os imóveis2 Todos os imóveis2 Lançamento3 Lançamento3 Refª1
Tipo complexo Lançamento3 Lançamento3 Lançamento3 Lançamento3 Lançamento3 Lançamento3 Lançamento3
Linha Todos os imóveis4 Todos os imóveis4 Todos os imóveis4 Lançamento3 Lançamento3 Todos os imóveis4 Lançamento3
Tipo primitivo Específico do provedor Específico do provedor Específico do provedor Específico do provedor Específico do provedor Específico do provedor Específico do provedor
Multiconjunto Lançamento3 Lançamento3 Lançamento3 Lançamento3 Lançamento3 Lançamento3 Lançamento3
Refª Sim 5 Sim 5 Sim 5 Sim 5 Lançamento Lançamento Sim 5
Associação

tipo
Lançamento3 Lançamento Lançamento Lançamento Lançamento3 Lançamento3 Lançamento3

1 As referências das instâncias de tipo de entidade dadas são implicitamente comparadas, como mostrado no exemplo a seguir:

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

Uma instância de entidade não pode ser comparada a uma referência explícita. Se isso for tentado, uma exceção será lançada. Por exemplo, a consulta a seguir lançará uma exceção:

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

2 As propriedades de tipos complexos são achatadas antes de serem enviadas para a loja, para que se tornem comparáveis (desde que todas as suas propriedades sejam comparáveis). Ver também 4.

3 O tempo de execução do Entity Framework deteta o caso sem suporte e lança uma exceção significativa sem envolver o provedor/armazenamento.

4 Tenta-se comparar todas as propriedades. Se houver uma propriedade de um tipo não comparável, como text, ntext ou image, uma exceção de servidor poderá ser lançada.

5 Todos os elementos individuais das referências são comparados (isto inclui o nome do conjunto de entidades e todas as principais propriedades do tipo de entidade).

Consulte também