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 los espacios de nombres de Entity SQL es similar a la de .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 un identificador no se puede resolver 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 se encuentra 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.

Después, Entity SQL intenta buscar el identificador en todos los espacios de nombres no completos (especificados en el prólogo). 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 exterior (el objeto DbCommand o DbConnection), según se ilustra 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 parciales. 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, los espacios de nombres externos se sondean (en función de reglas similares).

Vea también

Conceptos

Referencia de Entity SQL
Información general de Entity SQL