最近在使用EF进行开发,其中出现了一个循环引用的问题,问题原因为A实体里面创建了导航属性导航到B,B也创建了导航属性引用了B或者B的集合。该问题在EF Core中没问题,也就是可以正常的查询和添加,但是在返回swagger接口的时候报错。循环引用,错误内容如下:
在网上查询了相关的资料,EF关于报错Self referencing loop detected with type的原因以及解决办法_self referencing loop detected for property 'manif-优快云博客提示可以通过修改相关的配置解决,但是我并没有找到在asp.net core 中如何设置该相关的配置。后面通过自己的研究发现,asp.net core 引用的序列化框架为System.Text.Json.Serialization这个官方的包,一路跟踪下来查询官方文档后找到了怎么过滤循环引用的方法,如下图可以解决循环引用的问题:

本文讲述了在使用EntityFramework(EF)开发时遇到的循环引用问题,尤其是在ASP.NETCore中,由于使用了System.Text.Json.Serialization进行序列化,导致Swagger接口报错。作者分享了解决方案,即通过配置序列化选项来过滤循环引用。
748

被折叠的 条评论
为什么被折叠?



