Créer sql server compact fichier dans le dossier appdata

Je suis en train d'élaborer un simple morceau de logiciel qui utilise Entity Framework code first et sql server compact 4. Au moment où cette configuration fonctionne. Entity framework crée le serveur sql server compact fichier si il n'existe pas encore de. Le chemin d'accès à la base de données est défini à partir de l'intérieur d'un connectionstring qui est stocké à l'intérieur de l'app.fichier de configuration. Elle est construite comme ceci:

<connectionStrings>
  <add name="DataContext" 
       connectionString="Data source=Database.sdf;"
       providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>

Cependant, je veux placer la base de données dans un dossier dans le courant de l'utilisateur du dossier de Données d'Application (le C:\Users\User\AppData\Roaming dossier sur mon win7 machine). J'ai essayé le réglage de la source de Données de la propriété connectionstring pour quelque chose comme le %APPDATA%de la Base de données.sdf, mais cela ne fonctionne pas, j'obtiens un "caractères Illégaux dans le chemin de" l'exception".

Je veux coller avec la connectionstring méthode, parce que je voudrais utiliser une autre base de données pour mes tests d'unité qu'avec mon application réelle. De cette façon, il est facile de modifier la base de données en plaçant une application.fichier de config à la racine du projet.

Quelqu'un peut-il m'orienter dans la bonne direction?

Mais de cette façon, je dois construire la connectionstring dans le code. Ce ne sera pas facile de changer l'emplacement de la base de données, comme je le fais maintenant. J'ai une autre application.fichier de config à la fois de mon projet et de mon projet de test, qui pointent tous deux vers une autre base de données.

OriginalL'auteur Jesse van Assen | 2011-10-03