Sto utilizzando EF Core, per gestire un file di database SQLite, in un progetto di console.
Quando creo un database, il file viene creato nella cartella bin, quindi fondamentalmente MyProjectName\bin\Debug\netcoreapp1.1\FooDatabase.sqlite
.
Voglio cambiare questo.
Ho provato a impostare Directory.SetCurrentDirectory
e IHostingEnvironment.ContentRootPath
. Niente funziona.
Come imposto a livello di codice la directory in cui deve essere creato il database?
In Microsoft.Data.Sqlite
2.0 (non ancora rilasciato), Directory.SetCurrentDirectory()
farà il trucco.
Fino ad allora suggerisco di utilizzare un percorso assoluto nella stringa di connessione:
var builder = new SqliteConnectionStringBuilder(relativeConnectionString);
bilder.DataSource = Path.Combine(dataDirectory, bilder.DataSource);
var absoluteConnectionString = builder.ToString();
Se vuoi davvero giocherellare con la meccanica interna, puoi, ma non la consiglierei:
// .NET Framework
AppDomain.CurrentDomain.SetData("DataDirectory", myDataDirectory);
// .NET Core
Environment.SetEnvironmentVariable("ADONET_DATA_DIR", myDataDirectory);