使用Entity Framework时遭遇System.StackOverFlowException问题求助
突发System.StackOverflow异常排查方案(ModelContainer.cs)
排查数据库循环引用数据
虽然没改代码,但数据库可能新增/修改了存在循环关联的数据(比如实体A关联实体B,B又反向关联A,EF Core加载时触发无限递归)。直接查看ModelContainer关联的实体表,定位循环数据;临时可给关联字段加[JsonIgnore]或者用.AsNoTracking()查询验证。回退组件版本排查隐性冲突
你提到所有组件已更至最新,可能是昨晚自动更新的NuGet包(比如EF Core、ASP.NET Core相关)引入了递归bug。查看NuGet包管理的历史版本,回退到昨晚的版本测试是否恢复正常。本地调试追踪递归源头
在Visual Studio 2022里给ModelContainer.cs的异常触发行加断点,触发API调用后查看调用栈窗口,找到无限递归的起点:- 如果是属性get/set方法自调用(比如
public int Id { get { return Id; } }),直接修复属性实现; - 如果是实体级联加载递归,调整EF Core的加载策略(比如关闭自动级联)。
- 如果是属性get/set方法自调用(比如
清理缓存重启服务
删除项目的bin/obj文件夹,重新生成解决方案;如果API部署在IIS,重启对应应用池,排除缓存或初始化异常导致的问题。
内容的提问来源于stack exchange,提问作者MagicWand
相关产品推荐
相关产品推荐

