61 votes

ADO.NET | Répertoire de données | où est-ce documenté?

Dans AppConfig, il est possible d'utiliser |DataDirectory| mais je ne trouve aucun document?

77voto

Alex Points 17262

|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");
 

15voto

Mahin Points 2534

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éé.

8voto

Paul Ford Points 51

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.

4voto

codekaizen Points 14819

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 .

4voto

Joe.P Points 23

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X