.NET 6 & EF Core执行Add-Migration卡在Using Context阶段求助
分部类DbContext的初始化异常
检查所有KUSYSDbContext分部类:是否存在重复的DbSet定义、OnConfiguring方法冲突;是否在构造函数或OnModelCreating中加入了耗时操作(比如远程API调用、本地大文件读取),这类操作会导致上下文初始化停滞。数据库连接字符串问题
确认KUSYS.Web项目配置文件(如appsettings.json)中的连接字符串是否正确:SQL Server需验证服务器地址、数据库名、认证方式;MySQL/PostgreSQL需确认端口、账号权限。连接不通或配置错误会让EF Core在验证连接时卡住。POCO类映射错误
排查四个实体类的配置:- StudentCourses作为关联实体,是否正确配置了复合主键(比如同时标记StudentId和CourseId为
[Key]) - 是否存在未处理的循环引用(比如Student和Course的导航属性未合理配置)
- 数据注解是否误用(比如
[ForeignKey]指向不存在的属性,[Required]标记了不可为空的关联属性)
- StudentCourses作为关联实体,是否正确配置了复合主键(比如同时标记StudentId和CourseId为
EF Core版本不兼容
执行dotnet ef --version查看全局CLI工具版本,对比项目中Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.Tools等包的版本,版本不一致会导致工具无法正常解析上下文。启动项目初始化耗时
Web项目(KUSYS.Web)的Program.cs中如果存在启动时加载大量配置、初始化第三方服务的逻辑,EF Core迁移工具会等待宿主环境初始化完成,进而卡住。可以临时创建一个仅包含DbContext的控制台项目作为迁移启动项目,规避Web项目的复杂初始化。权限与网络限制
本地数据库需确认当前用户有服务器访问权限;远程数据库要检查防火墙端口是否开放、账号是否有创建数据库的权限,网络不通会导致上下文无法连接数据库而停滞。
内容的提问来源于stack exchange,提问作者Fethi Tekyaygil

