最近在使用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这个官方的包,一路跟踪下来查询官方文档后找到了怎么过滤循环引用的方法,如下图可以解决循环引用的问题: