Chaîne de connexion SQL Server Express pour le code Entity Framework First

code-first connection-string entity-framework sql-server-express

Question

Je travaille dans Visual Web Developer 2010 Express et j'utilise le CTP Entity Framework avec code-first. Je suis capable de faire cela avec le nouveau SQL Server CE mais je ne parviens pas à trouver une chaîne de connexion pour travailler avec SQL Server Express.

Celui-ci, utilisant la version bêta de SQL Server CE, fonctionne correctement (la base de données est créée et recréée à la suite de modifications du 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 la aspnetdb connexions aspnetdb ,

<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. Le SqlConnection fourni ne spécifie pas de catalogue initial

Alors, comment le faire fonctionner avec SQL Server Express?

Réponse acceptée

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

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

En gros, vous définissez le "serveur" auquel vous vous connectez - mais vous ne dites pas à quelle base de données du fichier se connecter. En outre, l'extension des fichiers de base de données SQL Server Express est .mdf (pas .sdf - c'est SQL Server Compact Edition) - vous devez également en tenir compte! ( était une faute de frappe, selon le commentaire de l'OP ).

Vous devez définir une database=.... de database=.... supplémentaire 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" />

Alors ça devrait marcher.

Pour plus d'informations et des tonnes d'échantillons, consultez le site Web ConnectionStrings .



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow