Формирование дерева из таблицы EF Core
Есть сущность, которая хранится в SQLite:
public class PositionRelation
{
public Guid Id { get; set; }
public Guid? ParentPositionId { get; set; }
public Position ParentPosition { get; set; }
public Guid ChildPositionId { get; set; }
public Position ChildPosition { get; set; }
}
Её суть сделать структуру должностей такую, что у каждой должности есть N количество поддолжностей, с любой вложенностью, например:
Должность 1
/ \
Должность 2 Должность 3
/ \
Должность 2.2 Должность 2.3
Я бы хотел одним запросом в EFCore подгрузить "вложенные" связи чтобы из полученной коллекции сделать дерево. Как это можно сделать? Или стоит переделать модель? На ум приходит только лишь рекурсия. Так же были мысли добавить свойство string Path
, который будет хранить формат node1/node2/node3
чтобы потом пройтись Path.Contains(position.Id)
Источник: Stack Overflow на русском