2016-07-28 16 views
1

Ich lerne ASP.NET Core MVC App mit Visual Studio mit Tutorial zu bauen. In der „Adding a model“ Schritt habe ich ein neues eigenständiges Projekt (wie in der Anleitung geschrieben), aber wenn ich dotnet ef database update laufen, der folgende Fehler auftritt:Ein Netzwerk-bezogenen oder instanzspezifischen Fehler auf Dotnet-Ef-Datenbank-Update

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)

Aber ich habe SQL Server installiert und SQLEXPRESS Dienst ausgeführt wird. Ich habe auch versucht, den Port zu öffnen, aber es hat nicht geholfen.

+3

Was ist Ihre Verbindungszeichenfolge? – DavidG

+0

Hast du das funktioniert?Ich kann EF nach diesem Fehler nicht erreichen, um tatsächlich eine Datenbank zu erstellen ... – Joe

Antwort

4

Setup-LocalDB

Die Verbindungszeichenfolge der Vorlage ist für localdb und speziell für die mssqllocaldb Instanz. Stellen Sie sicher, dass Sie beides haben.

appsettings.json

{ 
    "ConnectionStrings": { 
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-MvcMovie-87ad796f-548e-4862-9713-d2976453319e;Trusted_Connection=True;MultipleActiveResultSets=true" 
    } 
} 

Vergewissern Sie sich, dass Sie LocalDB installiert haben. Um dies zu überprüfen, öffnen Sie eine Eingabeaufforderung und führen Sie sqllocaldb aus. Dadurch werden die LocalDB-Befehlszeilenhilfeinformationen gedruckt. Wenn Sie LocalDB nicht haben, then install it.

Stellen Sie sicher, dass Sie eine Instanz mit dem Namen MSSQLLocalDB haben. Um dies zu überprüfen, führen Sie sqllocaldb info. Wenn Sie diese Instanz nicht haben, müssen Sie sie entweder erstellen (sqllocaldb create mssqllocaldb) oder die Verbindungszeichenfolge so ändern, dass sie auf eine Instanz verweist, die Sie haben.

Arbeitsbeispiel auf meinem Rechner

Die dotnet ef database update Befehl läuft auf meinem Rechner. Hier ist die Ausgabe von verschiedenen Befehlen an meiner Eingabeaufforderung.

> sqllocaldb info 
MSSQLLocalDB 

> dotnet ef migrations add Initial 
Project MvcMovie (.NETCoreApp,Version=v1.0) will be compiled... 
Compiling MvcMovie for .NETCoreApp,Version=v1.0 
Compilation succeeded. 
    0 Warning(s) 
    0 Error(s) 
Time elapsed 00:00:01.7783361 

Done. To undo this action, use 'dotnet ef migrations remove' 

> dotnet ef database update 
Project MvcMovie (.NETCoreApp,Version=v1.0) was previously... 
Done. 
0

Ich wollte Shaun Luttins Antwort erweitern. Ich hatte das gleiche Problem, aber in diesem Fall kam ich nicht mit einer neuen Installation von Visual Studio, und es gab mir auch Probleme.

Dies war meine Lösung (Von der Installation vorhanden):

  1. Gehen Sie Ansicht und Klicken Sie auf "SQL Server Object Explorer"
  2. Auf Ihrer Serverliste direkt auf den Servernamen klicken und dann auf "Eigenschaften"
  3. Suchen Sie nach "Verbindungszeichenfolge".

Hier in meinem Fall, sagte sie:

"Source=(localdb)\\ProjectsV13;Initial... 

der Kürze Ausgelassene

Also, die ersetzen Server=(localdb)\\mssql für (localdb)\\ProjectsV13

Das sollte it.1

tun

enter image description here