Формирование дерева из таблицы EF Core

Рейтинг: 0Ответов: 0Опубликовано: 25.04.2023

Есть сущность, которая хранится в 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)

Ответы

Ответов пока нет.