.NET Core中EF Core迁移执行失败问题求助
修复EF Core迁移中的配置加载与DbContext实例化错误
问题根源
- appsettings.json语法错误:根节点多了一层嵌套大括号,导致配置文件无法被正确解析,这是「无法从文件加载配置」错误的直接原因。
- 配置加载失败引发依赖注入异常:由于配置文件解析失败,EF Core无法获取DbContext所需的
DbContextOptions<ApplicationContext>配置,进而触发「无法解析服务」的实例化异常。
修复步骤
1. 修正appsettings.json的JSON语法
将现有错误的JSON结构(多余外层大括号)替换为正确格式:
{ "ConnectionStrings": { "ProductionDB": "Data Source=DESKTOP-R6LR1KA\\SQLEXPRESS;Initial Catalog=MultiTable;Integrated Security=True;Trust Server Certificate=True" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" }
2. 确保迁移命令指定正确的项目(若为分层架构)
在Package Manager Console中执行迁移命令时,明确指定DbContext所在项目和启动项目:
Update-Database -Project ProjectOne.Data -StartupProject ProjectOne
若使用.NET CLI,执行:
dotnet ef database update --project ProjectOne.Data --startup-project ProjectOne
3. 验证DbContext服务注册
你的Program.cs中AddDbContext的配置是正确的,修复配置文件后,builder.Configuration.GetConnectionString("ProductionDB")将能正常读取连接字符串,确保DbContext的依赖注入可以正常工作。
完成以上步骤后,重新执行Update-Database命令即可完成迁移。
内容的提问来源于stack exchange,提问作者Shubham Guha
相关产品推荐
相关产品推荐

