为何配置返回错误的Connection String?SQLite连接串获取异常咨询
解决SQLite连接串读取错误问题
检查配置文件加载优先级
ASP.NET Core配置加载有优先级顺序:命令行参数 > 环境变量 > appsettings.{Environment}.json > appsettings.json。如果根目录的appsettings.json中也定义了DefaultConnection,且值为那个默认SQLite路径,会覆盖开发环境配置文件的内容。去确认appsettings.json里是否存在冲突的连接串配置。验证当前运行环境
确保项目运行在Development环境下,否则appsettings.Development.json不会被加载。可以通过两种方式确认:- 在Program.cs中添加代码输出当前环境:
Console.WriteLine($"当前环境: {builder.Environment.EnvironmentName}"); - 查看项目调试属性,确认
ASPNETCORE_ENVIRONMENT变量是否设置为Development。
- 在Program.cs中添加代码输出当前环境:
检查DbContext的硬编码配置
确认StoreContext的OnConfiguring方法是否硬编码了默认连接串,比如:protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=./Data/SQlLiteDatabase.db"); }这种硬编码会覆盖Program.cs中的配置。可以修改为仅在未配置时使用默认值:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { optionsBuilder.UseSqlite("Data Source=./Data/SQlLiteDatabase.db"); } }清理项目缓存
清理项目的bin和obj文件夹,重新生成解决方案,避免缓存的旧配置影响读取结果。
内容的提问来源于stack exchange,提问作者Kateryna Bondarenko
相关产品推荐
相关产品推荐

