请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

加了Include后 如果有子数据 就会无线循坏报错 是怎么回事

在查询父数据时加了Include顺便读取子数据,就会报无限循环的错误怎么解决?

正在回答 回答被采纳积分+3

2回答

慕移动7148688 2023-08-06 10:13:53

估计是TouristRouteDto中,你把ICollection<TouristRoutePictureDto>写成了ICollection<TouristRoutePicture>,所以会出现循环引用。改一下就行,如果实在不想改,可以在启动类中添加忽略循环引用的代码。

我用的是.Net6版本,没有Startup类,在Progress.cs文件中,builder.Services.AddControllers()方法后,添加忽略循环引用的代码即可,代码我已经贴在下面了。

builder.Services.AddControllers().AddJsonOptions( opt =>
            {
                opt.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;//忽略循环引用
                
            });


1 回复 有任何疑惑可以回复我~
阿莱克斯刘 2023-05-05 14:11:17
这个情况的排查可能比较麻烦,需要有点耐心。请加上断点,单步执行,一步一步找原因。如果实在不行就复制粘贴我的代码,对比一下具体的细节,看看是哪里不一样。
0 回复 有任何疑惑可以回复我~
  • 我也注意到TouristRoute和TouristRoutePicture 两个Model中的导航属性会导致在Include的时候会死循环下去,而在TouristRoutePictureDto中去掉了TouristRoute的导航属性,所以可以正确执行。我单步执行的时候发现数据只有在执行了Return Ok后才出现错误,数据在Return Ok 后才加载?
    回复 有任何疑惑可以回复我~ 2023-06-29 20:14:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信