비교 의미 체계(Entity SQL)

다음 Entity SQL 연산자를 수행하면 형식 인스턴스 비교가 수반됩니다.

명시적 비교

같음 연산:

  • =

  • !=

정렬 연산:

  • <

  • <=

  • >

  • >=

Null 허용 여부 연산:

  • IS NULL

  • NULL이 아님

명시적 구분

같음 구분:

  • DISTINCT

  • GROUP BY

정렬 구분:

  • ORDER BY

암시적 구분

Set 작업 및 조건자(같음):

  • UNION

  • INTERSECT

  • EXCEPT

  • SET

  • OVERLAPS

항목 조건자(같음):

  • IN

지원되는 조합

다음 표에서는 각 종류의 형식에 대해 지원되는 비교 연산자의 조합을 모두 보여 줍니다.

유형 =

!=
GROUP BY

DISTINCT
UNION

INTERSECT

EXCEPT

SET

OVERLAPS
IN <<=

>>=
ORDER BY IS NULL

IS NOT NULL
엔터티 유형 참조1 모든 속성2 모든 속성2 모든 속성2 Throw3 Throw3 참조1
복합 형식 Throw3 Throw3 Throw3 Throw3 Throw3 Throw3 Throw3
모든 속성4 모든 속성4 모든 속성4 Throw3 Throw3 모든 속성4 Throw3
기본 형식 공급자별 공급자별 공급자별 공급자별 공급자별 공급자별 공급자별
Multiset Throw3 Throw3 Throw3 Throw3 Throw3 Throw3 Throw3
Ref 5 5 5 5 Throw Throw 5
연결

형식
Throw3 Throw Throw Throw Throw3 Throw3 Throw3

1해당 엔터티 형식 인스턴스의 참조는 다음 예제와 같이 암시적으로 비교됩니다.

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

엔터티 인스턴스는 명시적 참조와 비교할 수 없습니다. 비교를 시도하면 예외가 throw됩니다. 예를 들어, 다음 쿼리는 예외를 throw합니다.

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

2복합 형식의 속성이 저장소로 전송되기 전에 결합되므로 비교할 수 있는 상태가 됩니다(해당 속성이 모두 비교 가능한 경우). 4도 참조하세요.

3Entity Framework 런타임에서는 지원되지 않는 경우를 감지하여 공급자/저장소의 개입 없이도 의미 있는 예외를 throw합니다.

4모든 속성을 비교합니다. 텍스트, ntext, 이미지와 같이 비교할 수 없는 형식의 속성이 있는 경우 서버 예외가 throw될 수 있습니다.

5참조의 모든 개별 요소가 비교되며, 여기에는 엔터티 형식의 엔터티 집합 이름과 모든 키 속성이 포함됩니다.

참고 항목