Dans AppConfig, il est possible d'utiliser |DataDirectory|
mais je ne trouve aucun document?
Réponses
Trop de publicités? |DataDirectory|
est une chaîne de substitution vous permettant de configurer l'emplacement de votre fichier de base de données séparément.
Donc au lieu de:
SqlConnection c = new SqlConnection (
@"Data Source=.\SQLDB; AttachDbFilename=C:\MyDB\Database.mdf;Initial Catalog=Master");
vous faites ce qui suit:
// Set |DataDirectory| value
AppDomain.CurrentDomain.SetData("DataDirectory", "C:\myDB");
// SQL Connection String with |DataDirectory| substitution string
SqlConnection c = new SqlConnection (
@"Data Source=.\SQLDB; AttachDbFilename=|DataDirectory|\Database.mdf;Initial Catalog=Master");
Dans la MSDN forums sociaux cette réponse peut être trouvée
|DataDirectory| (ci-joint dans les symboles de tuyau) est une chaîne de caractères qui indique le chemin d'accès à la base de données. Il élimine le besoin de coder en dur le chemin d'accès complet ce qui conduit à plusieurs problèmes comme le chemin d'accès complet à la base de données pourrait être sérialisé dans différents endroits. DataDirectory rend également facile de partager un projet et également de déployer une application.
Par exemple, au lieu d'avoir la chaîne de connexion suivante:
"Data Source= c:\program files\MyApp\Mydb.sdf"
À l'aide de DataDirectory, vous pouvez avoir la chaîne de connexion suivante:
"Data Source = |DataDirectory|\Mydb.sdf"
Pour définir la propriété DataDirectory, appelez le domaine d'application.La méthode SetData. Si vous ne définissez pas la propriété DataDirectory, les règles par défaut suivantes seront appliquées pour accéder au dossier de base de données:
- Pour les applications qui sont placés dans un dossier sur l'ordinateur de l'utilisateur, le dossier de base de données utilise le dossier de l'application.
- Pour les applications qui sont en cours d'exécution en vertu de ClickOnce, le dossier de base de données utilise les données du dossier qui est créé.
Incorrect gars! L' |DataDirectory| se réfère à la mssql\data dans le répertoire de votre instance est configuré pour.
Ainsi, par exemple je suis à l'aide de Visual Studio 2012 inconjunction avec SQL Express. |DataDirectory| lieux tous les fichiers MDF en vertu de C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA où mon sql express a été installé pas mes solutions de dossier app_data.
Aussi le fichier des noms de MVCMovie.Modèles.MovieDBContext pas des Films.mdf comme spécifié dans mon web.config.
Je pense qu'il doit être configuré quelque part dans visual studio pour être placés de façon appropriée en vertu de app_data.
Il existe une classe interne appelée SqlConnectionHelper qui analyse et crée le MDF si nécessaire.
Voici le seul document MS que je puisse trouver à propos de cette classe et du répertoire | DataDirectory | macro: http://msdn.microsoft.com/en-us/library/aa478948.aspx .
http://msdn.microsoft.com/en-us/library/aa478948.aspx
Le | DataDirectory | partie de la chaîne de connexion spécifie que le fichier MDF se trouve dans le répertoire App_Data.