如何获得Linq-To-Entities的某些节点的所有后代?

时间:2011-11-03 14:21:56

标签: entity-framework c#-4.0 linq-to-entities recursive-query

我需要递归地获取某个节点的所有后代。例如,对于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 :(得分:0)

单个请求执行它的唯一方法是在SQL数据库中使用ExecuteQuery存储函数。虽然此存储函数将使用Common Table Expression进行递归查询。

如果解决问题,请将此标记为“答案”。

相关问题