以編程方式更改控制台項目中EF Core數據庫的路徑

c# entity-framework entity-framework-core

我在控制台項目中使用EF Core來管理SQLite數據庫文件。

當我創建數據庫時,文件是在bin文件夾中創建的,所以基本上是MyProjectName\bin\Debug\netcoreapp1.1\FooDatabase.sqlite

我想改變這個。

我嘗試設置Directory.SetCurrentDirectoryIHostingEnvironment.ContentRootPath 。什麼都行不通。

如何以編程方式設置應在其中創建數據庫的目錄?

一般承認的答案

Microsoft.Data.Sqlite 2.0(尚未發布)中, Directory.SetCurrentDirectory()將完成這一操作。

在那之前,我建議在連接字符串中使用絕對路徑:

var builder = new SqliteConnectionStringBuilder(relativeConnectionString);
bilder.DataSource = Path.Combine(dataDirectory, bilder.DataSource);
var absoluteConnectionString = builder.ToString();

如果你真的想擺弄內部機制,你可以,但我不推薦它:

// .NET Framework
AppDomain.CurrentDomain.SetData("DataDirectory", myDataDirectory);

// .NET Core
Environment.SetEnvironmentVariable("ADONET_DATA_DIR", myDataDirectory);


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow