Si vous travaillez sur un projet .Net qui a plusieurs années d’histoire derrière lui, il est probable qu’il soit composé de plusieurs couches d’accès aux données, et donc, de plusieurs types de chaînes de connexion.
Voici un exemple : le projet contient un accès « à l’ancienne », à base de DataSet. Puis, plus récemment, un accès via Entity Framework a été mis en place (afin de moderniser l’application). Enfin, un module d’un autre projet doit venir se greffer dessus. Hors, ce dernier utilise un accès de type OLEDB.
Au lieu de se retrouver avec trois chaînes de connexions dans le fichier Web.config, on va pouvoir toutes les factoriser vers une seule ; en l’occurrence, celle d’Entity Framework.
En plus de « clarifier » le Web.config et d’éviter les oublis de paramétrage, cela va notamment être utile pour un projet de tests unitaires (afin d’éviter, là aussi, les doublons inutiles).
On va donc tout d’abord récupérer la chaîne de connexion Entity Framework à partir de son nom :
On extrait simplement la valeur de l’attribut « connectionString » à partir de la valeur de l’attribut « name » passé en paramètre.
Puis, si vous voulez utiliser une chaîne de connexion pour un projet qui utilisait initialement un accès de type ADO.Net, utilisez la fonction décrite ci-dessous comme ceci :
On prend ici la valeur écrite entre les caractères HTML « " », qui sont traduits lors du chargement du Web.config vers les caractères standards « quotes » (\"), d’où la division (split) sur ces derniers.
Enfin, si votre projet utilisait un accès de type OLEDB, telles des poupées russes (ou un extrait d’Inception), utilisez les fonctions comme ceci :
Ici, c’est un peu plus simple. A partir de la chaîne de connexion ADO, on ajoute simplement une chaîne de caractères décrite ci-dessus en préfixe.
Voilà, vous y verrez désormais un peu plus clair dans votre Web.config et vous pourrez continuer à maintenir votre vieux coucou en attendant la refonte complète !