38 votes

SQL Server Express chaîne de connexion pour Entity Framework Code First

Je travaille dans Visual Web Developer 2010 Express, et à l'aide de Entity Framework code first CTP. Je suis capable de le faire avec le nouveau SQL Server CE, mais je suis incapable de trouver une chaîne de connexion avec SQL Server Express.

Celui-ci, à l'aide de SQL Server CE bêta, fonctionne très bien (base de données est créée et recréée sur les changements de modèle).

<add name="TrempimModel"
     connectionString="data source=|DataDirectory|TrempimModel.sdf"
     providerName="System.Data.SqlServerCe.4.0" />

Celui-ci, que j'ai copié à partir de l' aspnetdb des connexions de la chaîne,

<add name="TrempimModel"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
     AttachDBFilename=|DataDirectory|TrempimModel.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />

Donne le message suivant au démarrage:

Impossible de terminer l'opération. Fournis SqlConnection ne spécifiez pas un catalogue initial

Alors, comment le faire fonctionner avec SQL Server Express?

61voto

marc_s Points 321990

Le problème avec votre chaîne de connexion est ici:

<add name="TrempimModel"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
                       AttachDBFilename=|DataDirectory|aspnetdb.sdf;
                       User Instance=true"
     providerName="System.Data.SqlClient" />

Vous êtes essentiellement la définition de ce "serveur" vous êtes connectés sur - mais vous n'êtes pas de dire ce que la base de données à l'intérieur du fichier à connecter. Aussi - l'extension de fichier de SQL Server Express fichiers de base de données est - .mdf (pas .sdf - c'est SQL Server Compact Edition) - vous avez besoin de prendre cela en compte, aussi! (a une faute de frappe, selon le commentaire de l'OP).

Vous devez définir un extra - database=.... (ou Initial Catalog=.....) dans votre chaîne de connexion:

<add name="TrempimModel"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
                       database=YourDatabaseName;
                       AttachDBFilename=|DataDirectory|aspnetdb.mdf;
                       User Instance=true"
     providerName="System.Data.SqlClient" />

Ensuite, il devrait fonctionner très bien.

Pour plus d'arrière-plan et des tonnes d'échantillons, découvrez la ConnectionStrings site web.

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