wake-up-neo.com

SQL Server Express-Verbindungszeichenfolge für Entity Framework Code First

Ich arbeite in Visual Web Developer 2010 Express und verwende das Code-First-CTP von Entity Framework. Ich kann dies mit dem neuen SQL Server CE tun, aber ich kann keine Verbindungszeichenfolge für die Arbeit mit SQL Server Express finden.

Diese Version funktioniert mit der SQL Server CE-Betaversion einwandfrei (die Datenbank wird bei Modelländerungen erstellt und neu erstellt).

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

Diese, die ich aus der aspnetdb -Verbindungszeichenfolge kopiert habe,

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

Gibt beim Start die folgende Meldung aus:

Vorgang kann nicht abgeschlossen werden. Die bereitgestellte SqlConnection gibt keinen anfänglichen Katalog an

Wie funktioniert es mit SQL Server Express?

38
GilShalit

Das Problem mit Ihrer Verbindungszeichenfolge ist hier:

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

Sie definieren im Grunde genommen, zu welchem ​​"Server" Sie eine Verbindung herstellen - aber Sie sagen nicht , zu welcher Datenbank in der Datei eine Verbindung hergestellt werden soll. Auch - die Dateierweiterung für SQL Server Express-Datenbankdateien lautet .mdf (Nicht .sdf - das ist SQL Server Compact Edition) - das müssen Sie auch berücksichtigen! ( war laut Kommentar von OP ein Tippfehler).

Sie müssen einen zusätzlichen database=.... (Oder Initial Catalog=.....) In Ihrer Verbindungszeichenfolge definieren:

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

Dann sollte es gut funktionieren.

Weitere Hintergrundinformationen und unzählige Beispiele finden Sie auf der Website ConnectionStrings .

61
marc_s