다음을 통해 공유


네임스페이스(Entity SQL)

엔터티 SQL은 형식 이름, 엔터티 집합, 함수 등과 같은 전역 식별자에 대한 이름 충돌을 방지하기 위해 네임스페이스를 도입합니다. Entity SQL의 네임스페이스 지원은 .NET Framework의 네임스페이스 지원과 유사합니다.

Entity SQL은 다음 예제와 같이 정규화된 네임스페이스(네임스페이스에 대해 더 짧은 별칭이 제공됨) 및 정규화되지 않은 네임스페이스의 두 가지 형식을 USING 절에 제공합니다.

USING System.Data;

USING tsql = System.Data;

이름 확인 규칙

로컬 범위에서 식별자를 확인할 수 없는 경우 Entity SQL은 전역 범위(네임스페이스)에서 이름을 찾으려고 합니다. 엔터티 SQL은 먼저 식별자(접두사)를 정규화된 네임스페이스 중 하나와 일치시키려고 시도합니다. 일치하는 항목이 있는 경우 Entity SQL은 지정된 네임스페이스의 나머지 식별자를 확인하려고 합니다. 일치하는 항목이 없으면 예외가 throw됩니다.

다음으로 Entity SQL은 식별자에 대해 모든 정규화되지 않은 네임스페이스(프롤로그에 지정됨)를 검색하려고 합니다. 식별자를 정확히 하나의 네임스페이스에 배치할 수 있으면 해당 위치가 반환됩니다. 둘 이상의 네임스페이스에 해당 식별자에 대한 일치 항목이 있으면 예외가 throw됩니다. 식별자에 대한 네임스페이스를 식별할 수 없는 경우 Entity SQL은 다음 예제와 같이 이름을 다음 바깥쪽 범위( DbCommand 또는 DbConnection 개체)에 전달합니다.

SELECT TREAT(p AS NamespaceName.Employee)
FROM ContainerName.Person AS p
WHERE p IS OF (NamespaceName.Employee)

.NET Framework의 차이점

.NET Framework에서 부분적으로 정규화된 네임스페이스를 사용할 수 있습니다. 엔터티 SQL은 이를 허용하지 않습니다.

ADO.NET 사용량

쿼리는 ADO.NET DbCommand 개체를 통해 표현됩니다. DbCommand 개체를 통해 DbConnection 개체를 빌드할 수 있습니다. 네임스페이스는 및 DbConnection 개체의 DbCommand 일부로 지정할 수도 있습니다. Entity SQL이 쿼리 자체 내에서 식별자를 확인할 수 없는 경우 외부 네임스페이스는 유사한 규칙에 따라 검색됩니다.

참고하십시오