ITPub博客

首页 > Linux操作系统 > Linux操作系统 > linq 递归

linq 递归

原创 Linux操作系统 作者:leecheery 时间:2008-11-20 14:17:31 0 删除 编辑

public void init(){

   var q=from c in dbs.T_ROLE

             select c;

   b=q.ToList().AsQueryable();

}

List result= new List ();

List parents= new List ();

IQueryable b;

public void getChilds(int pid)
        {
            var q = from c in b
                    where c.T_ROLE_PID == pid
                    select c;
            if (q.Count() > 0)
            {
                List li = q.ToList();
                foreach(db.T_ROLE t in li){
                    result.Add(t);
                    getChilds(t.T_ROLE_ID);
                }
            }
        }

public void getParent(int id){

            var q = from c in b
                    where c.T_ROLE_ID == id
                    select c;
            if (q.Count() > 0)
            {
                List li = q.ToList();
                foreach(db.T_ROLE t in li){
                    result.Add(t);
                    getChilds(t.T_ROLE_PID);
                }
            }

}

这里关键语句为 AsQueryable(),这样将数据库表变成内存数据表。从而对其进行任意的操作

 

 

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15116811/viewspace-498137/,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle 随系统启动
下一篇: 最近比较忙
请登录后发表评论 登录
全部评论

注册时间:2008-08-22

  • 博文量
    69
  • 访问量
    100603