0
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關於這種情況,所以我可以停止錘擊我的數據庫?