文档章节

SqlServer与Linq 无限递归目录树且输出层级

深圳大道
 深圳大道
发布于 2016/12/29 15:23
字数 261
阅读 3
收藏 0
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)));
}

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/53819333

深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
FreeBSD下执行SQL Server2005存储过程解决方案

FreeBSD下执行SQL Server2005存储过程解决方案(Warning: mssql_execute(): ...) FreeBSD下使用SQL Server2005(2008)需要使用FreeTDS。 安装FreeTSD后,使用PHP语言进行测试。在使用mssql_e...

雷xiao雨
2014/03/01
0
0
.NET Chloe.ORM v2.3,支持 sql 拦截器

Chloe.ORM:一款高质量的.Net C#数据库访问框架(ORM)。支持SqlServer、MySql、Oracle及SQLite,实体为纯POCO,支持基本数据类映射的同时也支持枚举类型。查询接口借鉴linq,支持lambda表达式...

so_while
2017/01/09
1K
9
SQL 2017 SQLPS执行Ad-SqlAvailabilityDatabase异常

SQL Server 2017 SQLPS执行Ad-SqlAvailabilityDatabase遇到问题 这个错误简直逆天,查了下该cmdlet的帮助 常规参数里有Debug。 执行Debug,输出如下: PS C:Windowssystem32> Add-SqlAvailab...

UltraSQL
2018/05/23
0
0
Jeasyframe 开源框架 V1.X Final 版发布

产品介绍: Jeasyframe开源框架是基于SSH框架开发的一款开源框架,框架集成了公司、部门、职位、用户、角色、菜单、权限模型的软件开发框架,另外Jeasyframe集成了很多解决方案,包括jbpm工作流...

周老兽
2013/12/20
1K
2
2年+ ASP.NET程序员 上海 求内推

目前任职一家国企 熟悉html/css/javascript/extjs/jquery 熟悉ASP.NET(C#)/WCF/Linq 熟悉MS-SqlServer/Oracle 求职要求: 1.不能老出差 2.双休 3.最好有大牛带..哈哈...

陈鼎
2013/03/15
226
4

没有更多内容

加载失败,请刷新页面

加载更多

Java的战争

本文来自微信公众号: 金捷幡(ID:jin-jiefan) ,作者:金捷幡,封面:拉里·埃里森(东方IC) 2019年5月,彻底撕破脸的特朗普掀起对华为的战争,谷歌被迫吊销了华为的Android授权。开源软...

Java领航员
34分钟前
1
0
超详细的LM3414MRX/NOPB规格参数介绍就在这里

超详细的LM3414MRX/NOPB规格参数介绍就在这里 描述 LM3414和LM3414MRX/NOPB是具有1-A 60 W(1)共阳极功能的恒流降压LED驱动器。它们适用于驱动单串3-W HBLED,效率高达96%。它们可接受4.5...

不能吃肉的仙女
40分钟前
1
0
Eclipse国内镜像源配置方法

Table of Contents 我们在国内从官网下载Eclipse以及插件非常慢,那么,有没有方法变快呢? 有,那就是使用国内的公开镜像源替换官方源。 1 下载Eclipse 首先,我们看一个链接地址: http:/...

求神
今天
5
0
java 请求服务

一.第一种基于java web http 请求服务,必须用tomcat 容器启动才能对外提供服务 在maven 工程中pox 文件导入jar <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>h......

zaolonglei
今天
5
0
HDFS工作机制——自开发分布式数据采集系统

需求描述: 在业务系统的服务器上,业务程序会不断生成业务日志(比如网站的页面访问日志) 业务日志是用log4j生成的,会不断地切出日志文件,需要定期(比如每小时)从业务服务器上的日志目...

须臾之余
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部