Chemins relatifs dans les chaînes de connexion ADO.NET 2.0
Pour créer un test unitaire lié à une source de données avec Visual Studio Team System, il est préférable de se baser sur une source de données indépendante, utilisée uniquement pour les tests. On aimerait bien dans ce cas pouvoir se connecter à un fichier .mdf local par exemple. Et tant qu'à faire, on aimerait bien aussi pouvoir spécifier un chemin relatif dans notre chaîne de connexion.
Or, avant ADO.NET 2.0, il n'était pas possible de spécifier un chemin relatif dans une chaîne de connexion pour pointer vers ce fichier .mdf. Il fallait donc utiliser des chemins absolus... Microsoft a remédié à ce problème dans la version 2.0. On a maintenant à notre disposition des chaînes de substitution comme ceci par exemple :
"Data Source=.\SQLEXPRESS; Integrated Security=True;AttachDbFilename=|DataDirectory|\Company.mdf;Initial Catalog=Company"
Notez le "|DataDirectory|" qui viendra automatiquement être remplacé par le répertoire dans lequel l'assembly appellante s'exécute. Et le tour est joué.
Et comme une bonne nouvelle ne vient jamais seule, vous pouvez modifier la valeur qui sera substituée au runtime par ce type de code :
AppDomain.CurrentDomain.setData("DataDirectory", "C:\MesTests\");
(Merci à Sushil Chordia pour l'info qui était bien cachée dans MSDN.)
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :