我有一个与自身有关系的类别表。那就是它是一个树层次视图,例如:oldfather_category -> Father_category -> child_category。
所以我需要在这张桌子上建立树视图。我需要它的所有行。起初我这样做:
IEnumerable<Category> list = _service.Get().Where(c => c.ParentID == null);
Node(list);
当我像这样使用递归时:
private void Node(IEnumerable<Category> list)
{
foreach (Category c in list)
{
//if has childs
if (c.Category1.Count > 0)
Node(c.Category1);
}
}
每次我调用c.Category1.Count属性(延迟执行魔法)时,实体框架都会构建选择。但是我想在第一条语句中加载所有实体,我想对 sql server 进行唯一的选择。我怎样才能做到这一点?我希望问题很清楚)
编辑:当我使用 ToList() 时 Category1 属性为 null 无论如何