У меня есть собственная референтная иерархия в EF с завихрением. Существует сущность, которая представляет собой иерархию. Этот объект имеет отношение «один-много» к элементам самой иерархии.EF - эффективная загрузка самореференциальной иерархии, где каждый элемент иерархии ссылается на единый объект
Вот (несколько Опущенные) классов:
[Table("Hierarchies")]
public class Hierarchy
{
public Hierarchy()
{
Entries = new List<HierarchyEntry>();
}
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<HierarchyEntry> Entries { get; set; }
}
[Table("HierarchyEntries")]
public class HierarchyEntry
{
public HierarchyEntry()
{
Children = new List<HierarchyEntry>();
}
public int Id { get; set; }
[ForeignKey("Hierarchy")]
public int HierarchyId { get; set; }
[ForeignKey("Parent")]
public int? ParentId { get; set; }
public string Name { get; set; }
public CostCenterHierarchy Hierarchy { get; set; }
public CostCenterHierarchyEntry Parent { get; set; }
public virtual ICollection<HierarchyEntry> Children { get; set; }
}
С точки зрения базы данных, я могу, очевидно, получить членов иерархии с помощью одного запроса. Однако, когда я спускаюсь по иерархии, я вижу, что EF постоянно запрашивает базу данных для детей этого уровня.
Ситуация - необычный прецедент для EF, поэтому я не прочь сделать немного работы, чтобы получить иерархию довольной, но я не могу заставить ее не отвечать на запросы каждый раз, когда я работаю с детьми.
Есть ли способ проинструктировать EF об этой ситуации, чтобы я мог остановить молот моей базы данных?