C# 实体框架核心中的循环引用。循环引用是好还是坏?

C# 实体框架核心中的循环引用。循环引用是好还是坏?,c#,entity-framework-core,C#,Entity Framework Core,我有一个关于刑事指控类别和刑事指控类型之间一对多关系的情况。我已在EF中配置外键关系,但它会导致循环引用。那么,循环引用是好还是坏? 我的课看起来像 public class CriminalChargeCategory { public int Id { get; set; } public string Name { get; set; } public List<CriminalChargeType> Criminal

我有一个关于刑事指控类别和刑事指控类型之间一对多关系的情况。我已在EF中配置外键关系,但它会导致循环引用。那么,循环引用是好还是坏? 我的课看起来像

 public class CriminalChargeCategory 
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public List<CriminalChargeType> CriminalChargeTypes { get; set; }
    }

 public class CriminalChargeType
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int criminalChargeCategoryID { get; set; }
        public CriminalChargeCategory CriminalChargeCategory { get; set; }
    }
公共类刑事指控类别
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共列表类型{get;set;}
}
公共类刑事指控类型
{
公共int Id{get;set;}
公共字符串名称{get;set;}
public int criminalChargeCategoryID{get;set;}
public CriminalChargeCategory CriminalChargeCategory{get;set;}
}

so
CriminalChargeCategory.CriminalChargeTypes
仅仅是一个导航属性正确吗?在哪些方面是好的还是坏的?正如您所说,在配置一对多关系时,这些属性与预期的一样。是的,我们可以说它是一个导航属性。就像每个CriminalChargeCategory都有CriminalChargeType的列表。因为这两个类都相互引用,所以需要循环引用。所以当我从数据库加载数据时,主对象有很多循环引用,这使得对象很重。那么,我是否需要通过只在一个类中放置导航属性来避免循环引用?但设置双向导航属性是有意义的。但实际上,您会使用导航属性吗?-如果不是,就把它删掉