2014-11-11 2 views
0

을 사용하여 모든 자식 ID를 linq을 사용하여 가능한 한 표시하려면 예 : "submodule_idparent = 6"을 선택하면 모두 5를 반환하고 1을 반환합니다. 6을 표시하려면 5와 1이 필요합니다. .재귀 자식 LINQ C#

submodule_id, submodule_name, submodule_idparent 

    1    Articles  null 
    2    Suppliers  null 
    3    Adjustment  1 
    4    Presentations 1 
    5    Categories  1 
    6    Subcategories 5 
    7    Corridors  1 
    8    Cellars   1 
    9    Purchases  2 

가 난 다음 코드 (MySQL의)

SELECT DISTINCT(submodule_id) FROM users_privileges LEFT JOIN modules_options USING(moduleoption_id) WHERE users_privileges.user_id = 1 

하지만 재귀되지 않습니다과 같은 몇 가지를 시도해보십시오.

미리 감사드립니다 (y).

+0

의 중복 가능성 [재귀 계층 구조 - Linq에를 사용하여 재귀 쿼리 (http://stackoverflow.com/questions/20974248/recursive-hierarchy-recursive-query -using-linq) – daniele3004

답변

1

이 시도 :

var query=GetAll(6); 

public IEnumerable<users_privileges> GetAll(int submodule_id) 
{ 
    var query = from c in db.users_privileges 
      where c.submodule_id == submodule_id 
      select c; 

    return query.ToList().Concat(query.ToList().SelectMany(t => GetAll(t.submodule_idparent)));     
} 

http://blog.csdn.net/q107770540/article/details/7708418

+0

천천히 알고 있지만 조언 만 있습니다. –

+0

고마워요! 완벽하게 작동합니다. –