web-dev-qa-db-fra.com

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

Je travaille dans Visual Web Developer 2010 Express et j'utilise le CTP Entity Framework en premier code. Je suis en mesure de le faire 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, en utilisant la version bêta de SQL Server CE, fonctionne correctement (la base de données est créée et recréée lors des modifications 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 la chaîne de 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?

38
GilShalit

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

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

Vous définissez essentiellement le "serveur" auquel vous vous connectez - mais vous ne dites pas à quelle base de données du fichier vous connecter. De plus - l'extension de fichier pour les 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 OP).

Vous devez définir un database=.... Supplémentaire (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, cela devrait très bien fonctionner.

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

61
marc_s