Spazi dei nomi (Entity SQL)Namespaces (Entity SQL)

In Entity SQLEntity 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.Entity SQLEntity SQL introduces namespaces to avoid name conflicts for global identifiers such as type names, entity sets, functions, and so on. Il supporto dello spazio dei nomi in Entity SQLEntity SQL è simile per il supporto dello spazio dei nomi di .NET Framework.NET Framework.The namespace support in Entity SQLEntity SQL is similar to the namespace support in the .NET Framework.NET Framework.

Entity SQLEntity 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: provides two forms of the USING clause: qualified namespaces (where a shorter alias is provided for the namespace), and unqualified namespaces, as illustrated in the following example:

USING System.Data;

USING tsql = System.Data;

Regole per la risoluzione dei nomiName Resolution Rules

Se non è possibile risolvere un identificatore negli ambiti locali, Entity SQLEntity SQL tenta di individuare il nome negli ambiti globali (gli spazi dei nomi).If an identifier cannot be resolved in the local scopes, Entity SQLEntity SQL tries to locate the name in the global scopes (the namespaces). Entity SQLEntity SQL tenta innanzitutto di confrontare l'identificatore (prefisso) con uno degli spazi dei nomi qualificati. first tries to match the identifier (prefix) with one of the qualified namespaces. Se esiste una corrispondenza, Entity SQLEntity SQL tenta di risolvere il resto dell'identificatore nello spazio dei nomi specificato.If there is a match, Entity SQLEntity SQL tries to resolve the rest of the identifier in the specified namespace. Se non viene trovata alcuna corrispondenza, viene generata un'eccezione .If no match is found, an exception is thrown.

Successivamente, Entity SQLEntity SQL tenta di cercare tutti non qualificati spazi dei nomi (specificati nel prologo) per l'identificatore.Next, Entity SQLEntity SQL tries to search all unqualified namespaces (specified in the prolog) for the identifier. Se l'identificatore può essere individuato esattamente in uno spazio dei nomi, viene restituito tale percorso.If the identifier can be located in exactly one namespace, that location is returned. Se la corrispondenza per l'identificatore è presente in più di uno spazio dei nomi, viene generata un'eccezione.If more than one namespace has a match for that identifier, an exception is thrown. Se nessuno spazio dei nomi può essere identificato per l'identificatore, Entity SQLEntity SQL passa il nome all'ambito esterno successivo (il DbCommand o DbConnection oggetto), come illustrato nell'esempio seguente:If no namespace can be identified for the identifier, Entity SQLEntity SQL passes the name onto the next outward scope (the DbCommand or DbConnection object), as illustrated in the following example:

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

Differenze rispetto a .NET FrameworkDifferences from the .NET Framework

In .NET Framework.NET Framework non è possibile usare spazi dei nomi parzialmente qualificati.In the .NET Framework.NET Framework, you can use partially qualified namespaces. Ciò non è consentito in Entity SQLEntity SQL.Entity SQLEntity SQL does not allow this.

Uso di ADO.NETADO.NET Usage

Le query sono espresse attraverso oggetti DbCommand ADO.NET.Queries are expressed through ADO.NET DbCommand objects. Gli oggetti DbCommand possono essere creati in base a oggetti DbConnection.DbCommand objects can be built over DbConnection objects. Anche gli spazi dei nomi possono essere specificati come parte degli oggetti DbCommand e DbConnection.Namespaces can also be specified as part of the DbCommand and DbConnection objects. Se Entity SQLEntity SQL non è possibile risolvere un identificatore all'interno della query stessa, gli spazi dei nomi esterni subiscono (in base a regole simili).If Entity SQLEntity SQL cannot resolve an identifier within the query itself, the external namespaces are probed (based on similar rules).

Vedere ancheSee Also

Riferimento a Entity SQLEntity SQL Reference
Panoramica di Entity SQLEntity SQL Overview