EF Core Queries: Как мне .Include и .ThenInclude для неизвестного количества рекурсивных вложений коллекций одного типа? - PullRequest
0 голосов
/ 11 марта 2020

Например, у меня есть класс ThoughtComment, состоящий из ICollection<ThoughtComment>, который называется «SubComments». При запросе к этой сущности для ее субкомментариев мне нужно сделать .Include()/.ThenInclude() для каждого уровня субкомментария в иерархии ThoughtComment.SubComments.

Например, чтобы попасть на второй уровень глубины субкомментариев, который у меня был бы сделать что-то вроде:

var messages = originalThought
    .Include(i => i.SubComments)
    .ThenInclude(i => i.SubComments)
    .ThenInclude(I => i.Message)
    .Select(s => s);

Тогда, если я захочу перейти на третий уровень глубоко, мне придется сделать это:

var messages = originalThought
    .Include(i => i.SubComments)
    .ThenInclude(i => i.SubComments)
    .ThenInclude(i => i.SubComments)
    .ThenInclude(I => i.Message)
    .Select(s => s);

Это невозможно, потому что я не знаю, сколько уровней будет на уровне субкомментариев. Итак, я хотел бы знать, как я могу настроить запрос EF Core на Include / ThenInclude неизвестное количество слоев сущностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...