linq中的简单内连接

时间:2012-06-12 09:51:58

标签: linq join

我有三个表ABCC有许多B个,其中有A个。{/ p>

我想在树中显示所有这些数据,因此我将db.A绑定到具有三层层次结构的嵌套控件。唯一的问题是我得到太多行,因为它没有在BC之间进行内部联接。

那么我怎样才能在linq中做这样的事情:

SELECT A.name, B.name
FROM A
INNER JOIN B ON A.id = B.AID 
INNER JOIN C ON B.id = C.BID
GROUP BY A.Name, B.Name
ORDER BY A.Name

我尝试过以下无效:

from a in A
join b in B on a.id equals b.AID
join c in C on b.id equals c.BID
select c

非常感谢

1 个答案:

答案 0 :(得分:0)

试试这个:

from a in A 
join b in B on a.id equals b.AID 
join c in C on b.id equals c.BID 
group new {a,b} by new {a.name,b.name} into g
select g

上面的连接与你在sql查询中的连接相同,但你想要的是:

from a in A 
join b in B on a.id equals b.AID 
join c in C on b.id equals c.BID 
group c by c.name into g
select g