我在控制台项目中使用EF Core来管理SQLite数据库文件。
当我创建数据库时,文件是在bin文件夹中创建的,所以基本上是MyProjectName\bin\Debug\netcoreapp1.1\FooDatabase.sqlite
。
我想改变它。
我尝试设置Directory.SetCurrentDirectory
和IHostingEnvironment.ContentRootPath
。什么都行不通。
如何以编程方式设置应在其中创建数据库的目录?
答案 0 :(得分:1)
在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);