Compartir a través de


Espacios de nombres (Entity SQL)

Entity SQL introduce espacios de nombres para evitar conflictos de nombres en los identificadores globales como los nombres de tipos, los conjuntos de entidades, las funciones, etcétera. La compatibilidad con el espacio de nombres en Entity SQL es similar a la que hay con el espacio de nombres en .NET Framework.

Entity SQL proporciona dos formas de cláusula USING: espacios de nombres completos, a los que se proporciona un alias más breve, y espacios no completos, según se ilustra en el ejemplo siguiente:

USING System.Data;

USING tsql = System.Data;

Reglas de la resolución de nombres

Si no se puede resolver un identificador en los ámbitos locales, Entity SQL intenta localizar el nombre en los ámbitos globales (los espacios de nombres). Entity SQL primero intenta buscar la coincidencia del identificador (prefijo) con uno de los espacios de nombres completos. Si hay una coincidencia, Entity SQL intenta resolver el resto del identificador en el espacio de nombres especificado. Si no se encuentra ninguna coincidencia, se inicia una excepción.

Posteriormente, Entity SQL intenta buscar en todos los espacios de nombres no completos (especificados en el prólogo) del identificador. Si el identificador se puede encontrar en un espacio de nombres exactamente, se devuelve esa ubicación. Si hay una coincidencia con ese identificador en más de un espacio de nombres, se inicia una excepción. Si no se puede identificar ningún espacio de nombres para el identificador, Entity SQL pasa el nombre al siguiente ámbito externo (el objeto DbCommand o DbConnection), tal como se muestra en el ejemplo siguiente:

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

Diferencias con .NET Framework

En .NET Framework, puede usar espacios de nombres parcialmente calificados. Entity SQL no permite esto.

Uso de ADO.NET

Las consultas se expresan a través de objetos DbCommand de ADO.NET. Los objetos DbCommand se pueden generar sobre los objetos DbConnection. Los espacios de nombres también se pueden especificar como parte de los objetos DbCommand y DbConnection. Si Entity SQL no puede resolver un identificador dentro de la propia consulta, se sondean los espacios de nombres externos (en función de reglas similares).

Vea también