Compartir a través de


Semántica de comparación (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 Throw3 Throw3 Ref1
Tipo complejo Throw3 Throw3 Throw3 Throw3 Throw3 Throw3 Throw3
Row Todas las propiedades4 Todas las propiedades4 Todas las propiedades4 Throw3 Throw3 Todas las propiedades4 Throw3
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 Throw3 Throw3 Throw3 Throw3 Throw3 Throw3 Throw3
Ref 5 5 5 5 Throw Throw 5
Asociación

type
Throw3 Throw Throw Throw Throw3 Throw3 Throw3

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).

Consulte también