我有两个实体之间的多对多关系:类别 <--> 项目
public class CategoryMaster
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual List<SubCategoryMaster> SubCategories { get; set; }
public List<ItemMaster> Items { get; set; }
}
public class ItemMaster
{
public long Id { get; set; }
public string Name { get; set; }
public List<CategoryMaster> Categories { get; set; }
}
每当我尝试显式加载所有/特定类别的相关项目时,它会给我一个错误。
- all related items
- related categories to those items
related items to those categories and so on...nested/circular references
db.CategoryMaster .Include(x=>x.Items) .Include(x=>x.SubCategories.Select(y=>y.Items)) .ToList();
A circular reference was detected while serializing an object of type 'GoGreen.Data.Entities.SubCategoryMaster'.
由于我在属性级别上禁用了延迟加载,因此我不希望它在任何时候加载所有嵌套实体(循环引用)。是否有一种方法可以加载所有相关的一级记录,即类别和相关项目。
相关问题 - 但我不想采用建议的两种方式中的任何一种。
注意:我更关心EF为什么会这样行事。这对我来说似乎是一个错误。