2012-08-05 73 views
0

给定一个共同的父/子表:LINQ - 父/子查询只选择最低水平

Table A 
Column Id int 
Column Parent_Id int 
Column Description text 

我想只能得到没有任何子节点的节点。

1,null,"PARENT A" 
2,null,"PARENT B", 
3,null,"PARENT C", 
100,1,"CHILD A1", 
101,1,"CHILD A2", 
102,2,"CHILD B1" 

所以我的结果集,我想只得到:

母公司C(因为它不具有任何子元素),和孩子A1,B2,B1。

回答

1

你不说你是使用LINQ查询到底是什么,但总的想法是

var leafNodes = nodes.Where(n => nodes.Count(n1 => n1.Parent_Id == n.Id) == 0); 
+0

工程就像一个魅力:)谢谢! – Kman 2012-08-05 14:20:49