Delen via


Naamruimten (Entiteit SQL)

Entiteit SQL introduceert naamruimten om naamconflicten te voorkomen voor globale id's, zoals typenamen, entiteitssets, functies, enzovoort. De naamruimteondersteuning in Entity SQL is vergelijkbaar met de naamruimteondersteuning in .NET Framework.

Entity SQL biedt twee vormen van de USING-component: gekwalificeerde naamruimten (waarbij een kortere alias wordt opgegeven voor de naamruimte) en niet-gekwalificeerde naamruimten, zoals wordt geïllustreerd in het volgende voorbeeld:

USING System.Data;

USING tsql = System.Data;

Regels voor naamomzetting

Als een id niet kan worden omgezet in de lokale bereiken, probeert Entity SQL de naam in de globale bereiken (de naamruimten) te vinden. Entiteit SQL probeert eerst de id (voorvoegsel) te koppelen aan een van de gekwalificeerde naamruimten. Als er een overeenkomst is, probeert Entity SQL de rest van de id in de opgegeven naamruimte op te lossen. Als er geen overeenkomst wordt gevonden, wordt er een uitzondering gegenereerd.

Vervolgens probeert Entity SQL alle niet-gekwalificeerde naamruimten (opgegeven in het prolog) voor de id te doorzoeken. Als de id zich in precies één naamruimte kan bevinden, wordt die locatie geretourneerd. Als meer dan één naamruimte een overeenkomst voor die id heeft, wordt er een uitzondering gegenereerd. Als er geen naamruimte kan worden geïdentificeerd voor de id, geeft Entity SQL de naam door aan het volgende uiterlijke bereik (het DbCommand of DbConnection object), zoals wordt geïllustreerd in het volgende voorbeeld:

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

Verschillen met .NET Framework

In .NET Framework kunt u gedeeltelijk gekwalificeerde naamruimten gebruiken. Entiteit SQL staat dit niet toe.

ADO.NET gebruik

Query's worden uitgedrukt via ADO.NET DbCommand objecten. DbCommand objecten kunnen worden gebouwd op DbConnection objecten. Naamruimten kunnen ook worden opgegeven als onderdeel van de DbCommand en DbConnection objecten. Als Entiteit SQL een id in de query zelf niet kan omzetten, worden de externe naamruimten uitgevoerd (op basis van vergelijkbare regels).

Zie ook