Semántica de las comparaciones (Entity SQL)

El uso de cualquiera de los operadores de Entity SQL siguientes implica la comparación de las instancias de tipo:

Comparación explícita

Operaciones de igualdad:

  • =

  • !=

Operaciones de ordenación:

  • <

  • <=

  • >

  • >=

Operaciones de nulabilidad:

  • IS NULL

  • IS NOT NULL

Distinción explícita

Distinción de igualdad:

  • DISTINCT

  • GROUP BY

Distinción de ordenación:

  • ORDER BY

Distinción implícita

Operaciones y predicados de conjuntos (igualdad):

  • UNION

  • INTERSECT

  • EXCEPT

  • SET

  • OVERLAPS

Predicados de elementos (igualdad):

  • IN

Combinaciones admitidas

En la tabla siguiente se muestran todas las combinaciones admitidas de los operadores de comparación para cada clase de tipo:

Tipo

=

!=

GROUP BY

DISTINCT

UNION

INTERSECT

EXCEPT

SET

OVERLAPS

IN

< <=

> >=

ORDER BY

IS NULL

IS NOT NULL

Tipo de entidad

Ref1

Todas las propiedades2

Todas las propiedades2

Todas las propiedades2

Se lanza una excepción3

Se lanza una excepción3

Ref1

Tipo complejo

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

Fila

Todas las propiedades4

Todas las propiedades4

Todas las propiedades4

Se lanza una excepción3

Se lanza una excepción3

Todas las propiedades4

Se lanza una excepción3

Tipo primitivo

Depende del proveedor

Depende del proveedor

Depende del proveedor

Depende del proveedor

Depende del proveedor

Depende del proveedor

Depende del proveedor

Conjunto múltiple

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

Ref

Sí5

Sí5

Sí5

Sí5

Se lanza una excepción

Se lanza una excepción

Sí5

Tipo de

tipo

Se lanza una excepción3

Se lanza una excepción

Se lanza una excepción

Se lanza una excepción

Se lanza una excepción3

Se lanza una excepción3

Se lanza una excepción3

1Las referencias de las instancias del tipo de entidad dado se comparan implícitamente, según se muestra en el ejemplo siguiente:

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

Una instancia de entidad no se puede comparar con una referencia explícita. Si se intenta, se inicia una excepción. Por ejemplo, la siguiente consulta iniciaría una excepción:

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

2Las propiedades de tipos complejos se simplifican antes de enviarse al almacén, de modo que lleguen a ser comparables (siempre que todas sus propiedades sean comparables). Vea también 4.

3El motor de tiempo de ejecución de Entity Framework detecta un caso no admitido e inicia una excepción significativa sin activar el proveedor o almacén.

4Se intentan comparar todas las propiedades. Si hay una propiedad que es de un tipo no comparable, como text, ntext o image, se podría iniciar una excepción de servidor.

5Se comparan todos los elementos individuales de las referencias (esto incluye el nombre del conjunto de entidades y todas las propiedades clave del tipo de entidad).

Vea también

Conceptos

Información general de Entity SQL