비교 의미 체계(Entity SQL)
다음 Entity SQL 연산자를 수행하면 형식 인스턴스 비교가 수반됩니다.
명시적 비교
같음 연산:
=
!=
정렬 연산:
<
<=
>
>=
Null 허용 여부 연산:
IS NULL
IS NOT 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참조의 모든 개별 요소가 비교되며, 여기에는 엔터티 형식의 엔터티 집합 이름과 모든 키 속성이 포함됩니다.