目标是对数据库进行Linq查询,以获取其他ID,这些ID会在名为GetFolder的方法中链接回输入ID。
'Hello'
有了ICollection,我可以查看该文件夹的同级对象。 GetFolders方法返回这些:
Sample Data
Id parentId
10 9
11 10
12 10
13 12
14 13
15 13
100 20
Expected Output
Id parentId
10 11
12 10
13 12
14 13
public class Folder
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Column("Parent_Id")]
public int? ParentId { get; set; }
public virtual ICollection<Folder> Children { get; set; }
}
我试图编写一个递归函数来获取其余的Id,但是它无法正常工作。 是否有人建议如何编写此递归函数以接收其余ID。
答案 0 :(得分:0)
怎么样
IEnumerable<int> GetRelatedIds(Folder root)
{
var ids = root.Children.SelectMany(c => GetRelatedIds(c)).ToList();
ids.Add(root.Id);
return ids;
}
这还将包括根文件夹的ID。如果不需要它,可以将其从列表中删除(它将是最后一个元素),也可以对根的所有子级运行此方法并连接结果。