是否可以将List转换为Tree,以便当我删除父节点时,所有子节点都将自动删除?将列表转换为树
这样做的原因是我有递归类别,我想显示除子类别(递归)以外的所有类别,而在我的脑海中最简单的方法是在图片中执行类似操作。
正如你在这个场景中看到的,当我删除红色节点时,所有绿色节点都会自动删除它们自己。我有什么选择?
这里是我使用的,如果这有什么差别模型。
public class Category
{
public int Id { get; set; }
public int? RootCategoryId { get; set; }
public virtual Category RootCategory { get; set; }
public virtual ICollection<Category> ChildCategories { get; set; }
}
这是我迄今为止
// This would eliminate only current category but not its children = bad
var availableCategories = _db.Categories.Where(x => x.Id != currentlyEditedId);
因此,举例来说,当我想编辑类别我会打电话_db.Categories.Where(x => x.Id != currentlyEditedId);
。这将消除当前类别(在图片中它将删除红色),但是绿色的将保留。
我该如何确定如果我删除了红色的那个绿色的也会删除?
最后我想要列出图片中所有黑色项目。
你有什么问题使用你刚刚显示的类别类? – Servy
@Servy问题是他得到了递归树的类别,这是太多的数据,他想控制递归深度。 – skmasq
@skmasq他从未这么说过。没有迹象表明数据的数量,或者深度太多而无法管理。 – Servy