Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Entity SQL introduit des espaces de noms pour éviter les conflits de noms pour les identificateurs globaux tels que les noms de types, les jeux d’entités, les fonctions, etc. La prise en charge de l’espace de noms dans Entity SQL est similaire à la prise en charge de l’espace de noms dans le .NET Framework.
Entity SQL fournit deux formes de la clause USING : les espaces de noms qualifiés (où un alias plus court est fourni pour l’espace de noms) et les espaces de noms non qualifiés, comme illustré dans l’exemple suivant :
USING System.Data;
USING tsql = System.Data;
Règles de résolution de noms
Si un identificateur ne peut pas être résolu dans les étendues locales, Entity SQL tente de localiser le nom dans les étendues globales (espaces de noms). Entity SQL tente d’abord de faire correspondre l’identificateur (préfixe) à l’un des espaces de noms qualifiés. S’il existe une correspondance, Entity SQL tente de résoudre le reste de l’identificateur dans l’espace de noms spécifié. Si aucune correspondance n’est trouvée, une exception est levée.
Ensuite, Entity SQL tente de rechercher tous les espaces de noms non qualifiés (spécifiés dans le prolog) pour l’identificateur. Si l’identificateur peut se trouver dans un espace de noms, cet emplacement est retourné. Si plusieurs espaces de noms ont une correspondance pour cet identificateur, une exception est levée. Si aucun espace de noms ne peut être identifié pour l’identificateur, Entity SQL transmet le nom à l’étendue extérieure suivante (ou DbCommandDbConnection objet), comme illustré dans l’exemple suivant :
SELECT TREAT(p AS NamespaceName.Employee)
FROM ContainerName.Person AS p
WHERE p IS OF (NamespaceName.Employee)
Différences par rapport au .NET Framework
Dans .NET Framework, vous pouvez utiliser des espaces de noms partiellement qualifiés. Entity SQL n’autorise pas cela.
Utilisation de ADO.NET
Les requêtes sont exprimées par le biais d’objets DbCommand ADO.NET. DbCommand les objets peuvent être générés sur DbConnection des objets. Les espaces de noms peuvent également être spécifiés dans le cadre des objets et DbConnection des DbCommand objets. Si Entity SQL ne peut pas résoudre un identificateur dans la requête elle-même, les espaces de noms externes sont interrogés (en fonction de règles similaires).