是否可以将列表转换为树,以便当我删除父节点时,所有子节点都会被自动删除?
这样做的原因是我有递归类别,我想显示除子类别(递归)之外的所有类别,我认为最简单的方法是执行图片中的操作。
正如您在这种情况下看到的,当我删除红色节点时,所有绿色节点都会自动删除。我有哪些选择?
这是我正在使用的模型,如果它有什么不同的话。
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);
. 这将消除当前类别(在图片中它将删除红色类别),但绿色类别将保留。
我如何确保如果我删除红色的,绿色的也会删除?
最后,我想要一个包含图片中所有黑色项目的列表。