Пространства имен (Entity SQL)

Entity SQL представляет пространства имен, чтобы избежать конфликтов имен для глобальных идентификаторов, таких как имена типов, наборы сущностей, функции и т. д. Поддержка пространства имен в Entity SQL аналогична поддержке пространства имен в платформа .NET Framework.

Entity SQL предоставляет две формы предложения USING: квалифицированные пространства имен (где для пространства имен предоставляется более короткий псевдоним), а также неквалифицированные пространства имен, как показано в следующем примере:

USING System.Data;

USING tsql = System.Data;

Правила разрешения имен

Если идентификатор не может быть разрешен в локальных область, Entity SQL пытается найти имя в глобальных область (пространства имен). Entity SQL сначала пытается сопоставить идентификатор (префикс) с одним из квалифицированных пространств имен. Если имеется совпадение, Entity SQL пытается устранить остальную часть идентификатора в указанном пространстве имен. Если совпадение не найдено, вызывается исключение.

Затем Entity SQL пытается выполнить поиск всех неквалифицированных пространств имен (указанных в прологе) для идентификатора. Если идентификатор удается найти только в одном пространстве имен, возвращается расположение. Если для идентификатора обнаружены совпадения в нескольких пространствах имен, вызывается исключение. Если пространство имен не может быть идентифицировано для идентификатора, 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 можно использовать частично квалифицированные пространства имен. Entity SQL не допускает это.

Использование ADO.NET

Запросы выражаются посредством объектов DbCommand ADO.NET. Объекты DbCommand могут быть построены на основе объектов DbConnection. Пространства имен также могут быть указаны как часть объектов DbCommand и DbConnection. Если entity SQL не может разрешить идентификатор в самом запросе, внешние пространства имен пробуются (на основе аналогичных правил).

См. также