我有一个文件夹层次结构,其中文件夹可以有一个父文件夹,无限深度。试图让一个选定的对象,可以有无限的嵌套儿童对象的所有儿童
所以... 文件夹A FolderId = 1 ParentFolderId = NULL(顶层)
文件夹B FolderId = 2 ParentFolderId = 1(A下嵌套)
目录C FolderId = 3 ParentFolderId = 2
文件夹d FolderId = 4 ParentFolderId = 3(在乙嵌套)(巢编辑在C)
我想要得到所有的文件夹B(或用户选择的任何文件夹)的孩子,这样我可以删除所有的孩子,但离开父母(除非,当然,顶部级别文件夹被选中)。
这可能是一些相当直接的递归或foreach循环,但我今天早上正在努力!我使用的是C#和EF,所以使用它会最有帮助。如果可能的话,我想把结果作为一个单子列表。
理想情况下,我想将它作为我的自定义文件夹对象的一种方法,以便我拥有的任何文件夹,我只能说Folder.Children()或类似的东西。
夹对象:
public class Folder
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int? ParentId { get; set; }
public virtual Folder Parent { get; set; }
public virtual ICollection<File> Files { get; set; }
}
预先感谢您。
你可以发布你迄今为止的尝试,以便可以建立一个答案吗? – 2013-02-17 18:24:30
我没有太多。曾尝试使用其他一些StackOverflow问题,但没有太多。 – Josh 2013-02-17 18:28:49