Linq连接和组

Linq连接和组,linq,join,linq-group,Linq,Join,Linq Group,以下是我上一个问题的内容: 我将如何编写一些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 我尝试过这个方法,但它会生成嵌套选择,从而生成不同数量的行 var r = from a in db.A join b in db.B on a.Id equal

以下是我上一个问题的内容:

我将如何编写一些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
我尝试过这个方法,但它会生成嵌套选择,从而生成不同数量的行

var r = from a in db.A
join b in db.B on a.Id equals b.AId
join c in db.C on b.Id equals c.BId
group c by c.B into g1
group b by g1.Key.A into g2
select g2.Key;

我需要一组
a
,其中包含
B
,其中包含
C
的列表。Bah我的评论丢失了格式


可以在linq语句中使用let绑定来保存值

from a in db.a
let g1 = a.GroupBy(x => x.Id)
from item in g1
let g2 = item.GroupdBy(x => x.Id)
from item2 in g2
select new {A = a, B = item, C = item2}

或者诸如此类的东西,希望它能给您足够的时间来解决它

您可以在linq语句中使用let绑定来保存值。从db.a中的a让g1=a.GroupBy(x=>x.Id)从g1中的item让g2=item.GroupdBy(x=>x.Id)从g2中的item2选择新的{a=a,B=item,C=item2}或类似的东西,希望它能给你足够的时间来解决这个问题谢谢,我想出了一个解决方案。