当前位置:
代码迷
>>
SQL
>> [学问分享] LINQ TO SQL 实现无限递归查询
详细解决方案
[学问分享] LINQ TO SQL 实现无限递归查询
热度:
78
发布时间:
2016-05-05 14:18:49.0
[知识分享] LINQ TO SQL 实现无限递归查询
见论坛内有网友提问类似的问题已经不止一次了,
现总结一下,希望能给以后再碰到此类问题的朋友一些帮助
--构造测试数据: 只作演示用CREATE TABLE [dbo].[Tim_LinqTable]([Id] int PRIMARY KEY IDENTITY(1,1) NOT NULL,[Name] [varchar](50) NOT NULL,[Parent] int NOT NULL,)GOINSERT INTO [Tim_LinqTable] SELECT 'A',0 UNION ALLSELECT 'A1',1 UNION ALLSELECT 'A2',1 UNION ALLSELECT 'B1',2 UNION ALLSELECT 'B2',3 UNION ALLSELECT 'C1',4 UNION ALLSELECT 'C2',4 UNION ALLSELECT 'D1',5 UNION ALLSELECT 'D2',5 UNION ALLSELECT 'D3',5 GOWITH tempAS(SELECT * FROM [Tim_LinqTable] WHERE Parent = 3UNION ALLSELECT m.* FROM [Tim_LinqTable] AS mINNER JOIN temp AS child ON m.Parent = child.Id)SELECT * FROM tempGO--查询 Parent=3 的所有子数据结果如下:Id Name Parent----------- -------------------------------------------------- -----------5 B2 38 D1 59 D2 510 D3 5(4 row(s) affected)
//好,下边来看看用C#怎么实现上边的SQL语句吧:void Main(){ var query=GetSonID(3); Console.WriteLine("Id\tName\tParent"); query.ToList().ForEach(q=>Console.WriteLine("{0}\t{1}\t{2}",q.Id,q.Name,q.Parent)); /* Id Name Parent 5 B2 3 8 D1 5 9 D2 5 10 D3 5 */}public IEnumerable<Tim_LinqTable> GetSonID(int p_id){ var query = from c in this.Tim_LinqTables where c.Parent == p_id select c; return query.ToList().Concat(query.ToList().SelectMany(t => GetSonID(t.Id))); }
更多LINQ知识分享,请参考:
http://blog.csdn.net/q107770540
查看全文
相关解决方案
LINQ to sQL:业务层多个Class Library,or 只用一个?该如何解决
LINQ in Action 电子书上载 附送书中源码 C# VB
Linq 代码生成器 发布了。而且还是在线生成的。该如何解决
Linq 代码生成器 公布了。而且还是在线生成的
VC++,里面会用到 ajax ,jquery linq 吗?解决思路
Linq 初学,问个有关问题.
Linq To Sql的有关问题(关于同步更新)
Linq 求转换。
linq 分组求和解决思路
linq 中如何表达 SQL中的 not in
linq 施用 SqlParameter
命名空间“System”中不存在部类或命名空间名称“Linq”(是缺少程序集引用吗?)
MVC,linq,json,有关问题不知道如何描述,跪求
LINQ to Entities 不识别方法解决办法
Linq 有结果就结贴一小时看一次贴子解决思路
Linq to Sql中编译Linq查询有关问题
LINQ 返回 datatable的有关问题
反编译后的 linq to sql 求
linq 中 g.first()怎么跟g.count() 连用啊
命名空间“System.Data”中不存在门类或命名空间名称“Linq”(是否缺少程序集引用?)
asp.net linq to sql 有关问题
linq 怎么实现动态查询
如何引用System.linq
求教sql 转 linq to ef 的有关问题,高手帮帮忙.
linq to entity 联动剔除
.cs 自动加载了using System.linq 等,要如何设定加载哪些
"Linq to object"实现以及异常排除
怎么在 Linq 2 Sql 中更新表
LinQ
Linq to sql 很郁闷的一个有关问题: System.Data.SqlClient.SqlException: 对象名 无效