SqlServer与Linq 无限递归目录树且输出层级
2016-12-22 19:50
330 查看
ALTER VIEW [dbo].[view_TreeLevel] AS WITH cte AS ( SELECT a.ModuleID , a.Module_Name , a.Module_Description , a.Module_FatherID , a.Module_Url , a.Module_Order, 1 Level FROM TT_TreeView a WHERE a.Module_FatherID=0 UNION ALL SELECT b.ModuleID , b.Module_Name , b.Module_Description , b.Module_FatherID , b.Module_Url , b.Module_Order, Level+1 FROM TT_TreeView b INNER JOIN cte c ON b.Module_FatherID = c.ModuleID ) SELECT TOP 100 PERCENT * FROM cte ORDER BY Level
CREATE TABLE [dbo].[AreaTable]( [Id] int PRIMARY KEY IDENTITY(1,1) NOT NULL, [Name] [varchar](50) NOT NULL, [Parent] int NOT NULL, ) GO INSERT INTO [AreaTable] SELECT '中国',0 UNION ALL SELECT '广东',1 UNION ALL SELECT '湖南',1 UNION ALL SELECT '深圳',2 UNION ALL SELECT '长沙',3 UNION ALL SELECT '福田',4 UNION ALL SELECT '南山',4 UNION ALL SELECT '天心',5 UNION ALL SELECT '岳麓',5 UNION ALL SELECT '芙蓉',5 UNION ALL SELECT '蛇口',7 UNION ALL SELECT '科技园',7 GO --查询全国 WITH temp AS ( SELECT *,1 Level FROM [AreaTable] WHERE Parent = 1 --1全国 2广东 UNION ALL SELECT m.*,Level+1 FROM [AreaTable] AS m INNER JOIN temp AS child ON m.Parent = child.Id ) SELECT * FROM temp ORDER BY temp.Level
void Main() { var query = GetChildren(2); //Linq递归查询方法 Console.WriteLine("Id\tName\tParent"); query.ToList().ForEach(q => Console.WriteLine("{0}\t{1}\t{2}", q.Id, q.Name, q.Parent)); } private IEnumerable<AreaTable> GetChildren(int p_id) { var query = RBAC.Dal.DataRootBase.Context.From<AreaTable>().Where(p => p.Parent == p_id); return query.ToList().Concat(query.ToList().SelectMany(t => GetChildren(t.Id))); }
相关文章推荐
- SqlServer与Linq 无限递归目录树且输出层级
- SqlServer与Linq 无限递归目录树且输出层级
- SqlServer与Linq 无限递归目录树且输出层级
- 递归读取输出无限分类目录
- 递归思想解决输出目录下的全部文件
- [Java]用递归与非递归的形式输出给定目录的所有文件名
- js递归方式实现无限级目录下的最后一层查找
- c#通用递归生成无限层级树
- Java基础知识强化之IO流笔记14:递归之输出指定目录下所有java文件绝对路径的案例
- php分类目录下拉列表(递归+无限分类)
- 无限分类数据库查询采用递归方法组成有层级数组
- 不使用递归的无限级目录树设计
- 请用递归和迭代两种方式输出文件目录结构
- php函数mkdir实现递归创建层级目录
- 【SqlServer-无限递归树状图结构设计和查询】
- Java、JS中实现无限层级的树形结构(类似递归)
- java、js中实现无限层级的树形结构方法(类似递归)
- 递归练习----递归输出某个目录下的.java文件
- 递归输出文件的层次目录结构
- 带层级关系的递归遍历目录内容