我有一个使用 Entity Framework Core 和 SQLite Provider 的 ASP.NET Core 2.0 应用程序。我试图将 SQLite 数据库文件存储在一个子目录(特别是 data\database\sqlite.db
)中,但是如果我将连接字符串设置为 Data Source=data\database\sqlite.db
我一运行 dbContext.Database.Migrate()
就会收到以下异常:
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 14: 'unable to open database file'.
如果我将它设置为 Data Source=sqlite.db
它按预期工作而不会引发异常(但不在我需要将其存储的目录中)。我需要做什么才能将 SQLite 数据库文件存储在相对于当前工作目录的子目录中?
就上下文而言:我需要将 SQLite 数据库文件存储在子目录中,因为此应用程序在 Docker 容器中运行,此特定目录映射到 Docker 卷,因此在替换容器时数据库仍然存在。
最佳答案
您应该修改为 "Data Source=./data/database/sqlite.db"
"DefaultConnection": "DataSource=./data/database/sqlite.db"
关于c# - 将 Entity Framework Core SQLite 文件存储在项目相关的子目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49569055/