Condividi tramite


Spazi dei nomi (Entity SQL)

In Entity SQL vengono introdotti gli spazi dei nomi per evitare conflitti di nome per gli identificatori globali, ad esempio nomi di tipi, set di entità, funzioni e così via. Il supporto dello spazio dei nomi in Entity SQL è analogo a quello in .NET Framework.

Entity SQL fornisce due tipi di clausola USING: spazi dei nomi qualificati (dove viene fornito un alias più breve per lo spazio dei nomi) e spazi dei nomi non qualificati, come illustrato nell'esempio seguente:

USING System.Data;

USING tsql = System.Data;

Regole per la risoluzione dei nomi

Se un identificatore non può essere risolto negli ambiti locali, Entity SQL tenta di trovare il nome negli ambiti globali (spazi dei nomi). Tramite Entity SQL viene prima eseguito un tentativo di trovare una corrispondenza tra l'identificatore (prefisso) e uno degli spazi dei nomi qualificati. Se è presente una corrispondenza, tramite Entity SQL viene eseguito un tentativo di risolvere il resto dell'identificatore nello spazio dei nomi specificato. Se non viene trovata alcuna corrispondenza, viene generata un'eccezione .

Tramite Entity SQL viene quindi eseguito un tentativo di cercare l'identificatore in tutti gli spazi dei nomi non qualificati (specificati nel prologo). Se l'identificatore può essere individuato esattamente in uno spazio dei nomi, viene restituito tale percorso. Se la corrispondenza per l'identificatore è presente in più di uno spazio dei nomi, viene generata un'eccezione. Se non è possibile identificare alcuno spazio dei nomi per l'identificatore, Entity SQL passa il nome all'ambito esterno successivo (oggetto DbCommand o DbConnection), come illustrato nell'esempio seguente:

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

Differenze rispetto a .NET Framework

In .NET Framework è possibile utilizzare spazi dei nomi parzialmente qualificati. Questo non è possibile in Entity SQL.

Utilizzo di ADO.NET

Le queries vengono espresse tramite oggetti ADO.NET DbCommand. Gli oggetti DbCommand possono essere compilati su oggetti DbConnection. Anche gli spazi dei nomi possono essere specificati come parte degli oggetti DbCommand e DbConnection. Se Entity SQL non è in grado di risolvere un identificatore all'interno della query stessa, viene eseguito un tentativo negli spazi dei nomi esterni (in base a regole simili).

Vedere anche

Concetti

Riferimenti a Entity SQL
Panoramica su Entity SQL