我有一個文件夾層次結構,其中文件夾可以有一個父文件夾,無限深度。試圖讓一個選定的對象,可以有無限的嵌套兒童對象的所有兒童
所以... 文件夾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