报错信息:“System.Text.Json.JsonException: A possible object cycle was detected. This can either be due to a cycle or if the object depth is larger than the maximum allowed depth of 32. Consider using ReferenceHandler.Preserve on JsonSerializerOptions to support cycles. Path: $.Data.ArticleTags.Article.ArticleTags.Article.ArticleTags.Article.ArticleTags.Article.ArticleTags.Article.ArticleTags.Article.ArticleTags.Article.ArticleTags.Article.ArticleTags.Article.ArticleTags.Article.Id.”
**问题描述:**这个错误是由于 JSON 序列化时出现了循环引用(也就是对象之间相互引用)导致的。默认情况下,EF Core 的导航属性是延迟加载的,这就意味着当你序列化实体类时,会包含很多导航属性,这些导航属性中可能会有循环引用,从而导致上面的错误。
**解决方法:**在 Startup.cs 中的 ConfigureServices 方法中设置 ReferenceLoopHandling 选项为 ReferenceLoopHandling.Ignore
builder.Services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles;
});