2

Ich brauche Hilfe mit dem Titel meiner Frage. Also hier ist mehr Details.Visual Studio 2017 mit EF Core ändern lokalen Datenbank Standardspeicherort für MDF-Datei vor/nach der Migration

In VS2015 Ich beim Erstellen einer Datenbank mit Code ersten Migrationen, Nach Abschluss meiner ersten Migration konnte ich die Datenbank in VS anzeigen, indem Sie in den Ordner App_Data und klicken Sie auf die MDF-Datei. Es würde dann im Server-Explorer geöffnet werden.

In VS2017 habe ich jedoch keinen App_Data-Ordner mehr, und als ich meine erste Migration durchführte, brauchte ich ein wenig Arbeit, um herauszufinden, wo sich meine MDF-Datei befand.

Wenn Sie nicht wissen, hier sind die Schritte, die ich es fand folgende Zwecke verwendet:

Nach der Add-Migration und Update-Datenbank zu tun.

Zum View-> SQL Server Object Explorer

Unter SQL Server sucht Sie (localdb) \ MSSQLLocalDB-> Datenbanken-> Namen Ihrer Datenbanken in Ihrem appsettings.json Verbindungszeichenfolge zeigen. Wahrscheinlich beginnt mit aspnet- [DB-Name] - [Bündel von Zahlen und Buchstaben]

Ich rechts auf diese Datenbank geklickt und ging zu Eigenschaften. Unter "Aktuelle Verbindungsparameter" befindet sich der Pfad zur MDF-Datei.

Der aktuelle Standort ist „C:/user/username“

Also meine Frage ist, wie kann ich dies zu einer anderen Stelle als Standard festgelegt? Ich möchte, dass meine MDF-Dateien im Ordner "Data" oder einem ähnlichen Ordner in meinem Projektordner angezeigt werden.

Wenn diese Frage gestellt wurde. Ich entschuldige mich. Ich habe versucht, meine Frage ungefähr 20 mal zu formulieren, um herauszufinden, ob jemand sie schon gefragt hat. Ich werde diese Frage schnell entfernen, wenn sie bereits auf eine mir unbekannte Weise gestellt wurde.

+0

Ich füge auch, dass Sie eine vorhandene Datenbanken MDF-Datei an den neuen Standort Verwendung Server-Explorer die Verbindungszeichenfolge von Server-Explorer in Ihre appsettings.json und erfrischt zu verbinden bewegen und kopieren . Alles sollte am neuen Ort erscheinen.Ich habe Austins als Antwort akzeptiert, weil er auch erklärt hat, wie man eine neue Verbindung an dem von Ihnen gewählten Ort herstellt. – vgwizardx

Antwort

2

Ok, also für Entity Framework Core ist es ein bisschen mehr beteiligt. Sie können Ihre Datenbank in Visual Studio (oder in Sql Management Studio) unter SQL Server Object Explorer öffnen und Ihre Datenbank mit einer SQL-Abfrage dort erstellen, wo Sie sie haben möchten.

create database test on (name='test', filename='c:\Projects\test.mdf'); 

Und dann verweisen sie mit (LocalDB), um die Art und Weise Sie normalerweise in der Verbindungszeichenfolge:

appsettings.json

{ 
    "ConnectionStrings": { 
     "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=test;Trusted_Connection=True;MultipleActiveResultSets=true" 
    } 
} 

Und dann dieser Test läuft richtig

Programm.cs

using System; 
using System.IO; 
using Microsoft.EntityFrameworkCore; 
using Microsoft.Extensions.Configuration; 

namespace ConsoleApp1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Hello World!"); 

      var builder = new ConfigurationBuilder() 
       .SetBasePath(Directory.GetCurrentDirectory()) 
       .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); 

      IConfigurationRoot configuration = builder.Build(); 

      var optionsBuilder = new DbContextOptionsBuilder(); 

      optionsBuilder.UseSqlServer(configuration.GetConnectionString("DefaultConnection")); 

      var context = new DbContext(optionsBuilder.Options); 

      context.Database.EnsureCreated(); 
     } 
    } 
} 

Sie verwenden also immer noch denselben Server, aber Sie platzieren die Datenbank in dem gewünschten Ordner.

In Aktion: enter image description here

+0

Ich wusste, dass ich etwas verpasst habe. Ich benutze EF Core. Weißt du, wie man das in EF Core macht? – vgwizardx

+0

Bearbeitet mit aktualisierter Antwort –

+0

Danke, wenn ich eine Chance habe, dies zu versuchen, werde ich Sie wissen lassen, ob es funktioniert und als beantwortet markieren, wenn alles funktioniert, was ich sicher bin :-). – vgwizardx

Verwandte Themen