c# - 将 Entity Framework Core SQLite 文件存储在项目相关的子目录中

标签 c# sqlite asp.net-core entity-framework-core asp.net-core-2.0

我有一个使用 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/

相关文章:

c# - 将 JSON 对象属性反序列化为字符串

c# - List<T> -- 用于大量项目的正确集合?

django - 为什么 django sqlite3 数据库在一台机器上与另一台机器上的工作方式不同?

c# - 每个按钮单击的增量 C# Desktop

c# - 匹配不同捕获组中的数字字符串

ios - 在 Sqlite iOS 中找不到表

javascript - Sencha sqlite 示例

c# - 如何测试所有 ASP.NET Core Controllers 的依赖注入(inject)是否有效?

asp.net-mvc - ASP.NET Core MVC 使用内部 Web API 而不使用 Http 请求

c# - ASP.NET Core - 如何检测 IHostedService 是否在运行时崩溃?我可以重新启动它吗?