在 ASP.Net Core 1.1 解决方案中检测到自引用循环

mJa*_*Jay 3 c# json.net object-graph asp.net-core

虽然我已经按照这里的文章进行操作,但我不断收到错误消息

检测到类型为“...”的属性“...”的自引用循环。路径“[4]....[0]”。

我已将此添加到我的Startup.cs

services.AddMvc()
    .AddJsonOptions(opt => 
        opt.SerializerSettings.ReferenceLoopHandling = 
            ReferenceLoopHandling.Ignore
    );
Run Code Online (Sandbox Code Playgroud)

还有什么可能导致参考循环错误?

编辑:在评论中回答问题......受影响的课程是:

public partial class GuidingSymptom
    {
        public GuidingSymptom()
        {
            VideosGuidingSymptoms = new HashSet<VideosGuidingSymptoms>();
        }
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        [MaxLength(70)]
        [Required]
        public string Name { get; set; }
        public string Description { get; set; }

        public int SeverityId { get; set; }
        public int? DiagnoseId { get; set; }

        [InverseProperty("GuidingSymptom")]
        public virtual ICollection<VideosGuidingSymptoms> VideosGuidingSymptoms { get; set; }
        [ForeignKey("DiagnoseId")]
        [InverseProperty("GuidingSymptom")]
        public virtual Diagnose Diagnose { get; set; }
        [ForeignKey("SeverityId")]
        [InverseProperty("GuidingSymptom")]
        public virtual GuidingSymptomSeverity Severity { get; set; }
    }

public partial class VideosGuidingSymptoms
{
    public int VideoId { get; set; }
    public int GuidingSymptomId { get; set; }

    [ForeignKey("GuidingSymptomId")]
    [InverseProperty("VideosGuidingSymptoms")]
    public virtual GuidingSymptom GuidingSymptom { get; set; }
    [ForeignKey("VideoId")]
    [InverseProperty("VideosGuidingSymptoms")]
    public virtual Video Video { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

mJa*_*Jay 5

我找到了添加的解决方案

[JsonIgnore]
Run Code Online (Sandbox Code Playgroud)

受影响的属性的注释。但是,我预计在使用时不需要这样做ReferenceLoopHandling.Ignore