【发布时间】:2020-06-08 12:28:16
【问题描述】:
我有一个包含相同类型子项的 TaskItem 类:
public class TaskItem
{
public Guid Id { get;set; }
// Parent Task
public TaskItem ParentTask { get; set; }
public Guid? ParentTaskId { get; set; }
//Child Tasks
public ICollection<TaskItem > ChildTasks{ get; set; }
}
要以平面列表的形式递归获取任务及其子任务:
var taskList = taskDBContext.TaskItems.Include(c => c.ChildTasks)
.Where(x => x.Id == taskId)
.SelectMany(x => x.ChildTasks)
.ToList();
问题是我总是得到一个任务,尽管该任务有不同级别的许多孙子。我的场景是将特定的父级及其子级和孙级加载为单个列表。
另外,如果这是一个好的设计,请告诉我,或者我是否必须更改它。
【问题讨论】:
-
@JohnathanBarclay 不,我正在尝试将特定的父级及其子孙加载到他们当前的级别。
-
找到了一种递归获取项目的方法:Stackoverflow answer
标签: c# linq ef-core-3.1