目标是对数据库进行 Linq 查询,以获取其余 id,这些 id 在名为 GetFolder 的方法中链接回输入 id
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; }
}
拥有 ICollection 允许我查看该文件夹的兄弟姐妹。GetFolders 方法返回这些:
Id parentId
10 11
11 10
12 10
private async Task<Folder> GetFolder(int folderId)
{
var entity = await Database.Folders
.Where(e => e.Id == folderId)
.Include(e => e.Children)
.SingleOrDefaultAsync();
return entity;
}
我试图编写一个递归函数来获取其余的 Id,但它不能正常工作。有没有人对如何编写这个递归函数来接收其余的 Id 有任何建议。