Namespaces (Entity SQL)
O Entity SQL introduz namespaces para evitar conflitos de nome para identificadores globais, como nomes de tipo, conjuntos de entidades, funções e assim por diante. O suporte de namespace no Entity SQL é semelhante ao suporte de namespace no .NET Framework.
O Entity SQL fornece duas formas da cláusula USING: namespaces qualificados (onde um alias mais curto é fornecido para o namespace) e namespaces não qualificados, conforme ilustrado no exemplo a seguir:
USING System.Data;
USING tsql = System.Data;
Regras de Resolução de Nomes
Se um identificador não puder ser resolvido nos escopos locais, o Entity SQL tentará localizar o nome nos escopos globais (os namespaces). O Entity SQL primeiro tenta corresponder o identificador (prefixo) com um dos namespaces qualificados. Se houver uma correspondência, o Entity SQL tentará resolver o restante do identificador no namespace especificado. Se nenhuma correspondência for encontrada, uma exceção será lançada.
Em seguida, o Entity SQL tenta pesquisar todos os namespaces não qualificados (especificados no prólogo) para o identificador. Se o identificador puder ser localizado em exatamente um namespace, esse local será retornado. Se mais de um namespace tiver uma correspondência para esse identificador, uma exceção será lançada. Se nenhum namespace puder ser identificado para o identificador, o Entity SQL passará o nome para o próximo escopo externo (o DbCommand objeto or DbConnection ), conforme ilustrado no exemplo a seguir:
SELECT TREAT(p AS NamespaceName.Employee)
FROM ContainerName.Person AS p
WHERE p IS OF (NamespaceName.Employee)
Diferenças do .NET Framework
No .NET Framework, você pode usar namespaces parcialmente qualificados. O Entity SQL não permite isso.
ADO.NET Utilização
As consultas são expressas através ADO.NET DbCommand objetos. DbCommand Os objetos podem ser construídos sobre DbConnection objetos. Os namespaces também podem ser especificados como parte dos DbCommand objetos e DbConnection . Se o Entity SQL não puder resolver um identificador dentro da própria consulta, os namespaces externos serão investigados (com base em regras semelhantes).