Как получить всех потомков какого-нибудь узла с помощью Linq-To-Entites? - PullRequest
3 голосов
/ 03 ноября 2011

Мне нужно получить рекурсивно все потомков какого-то узла.Например, для узла с Id = 1 мне нужно получить следующих потомков: 2,3,4,5,6.Для узла с Id = 2 мне нужно получить узлы: 4,5,7.Как я могу сделать это выиграть Linq-To-Entites с минимальными запросами к серверу?

    | Id | ParentId | Name |
    ------------------------
    | 1  |    1     |  a   |
    ------------------------
    | 2  |    1     |  b   |
    ------------------------
    | 3  |    1     |  c   |
    ------------------------
    |  4 |    2     |  d   |
    ------------------------
    |  5 |    2     |  e   |
    ------------------------
    |  6 |    3     |  f   |
    ------------------------
    |  7 |    5     |  g   |

1 Ответ

0 голосов
/ 30 августа 2012

Единственный способ выполнить его по одному запросу - использовать ExecuteQuery для хранимой функции в базе данных SQL. Пока эта хранимая функция будет использовать Common Table Expression для рекурсивного запроса.

Пожалуйста, отметьте это как Ответ, если это решит проблему.

...