继上一个问题之后:Simple inner join in linq
我如何写一些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
的列表
答案 0 :(得分:0)
我的评论失去了格式
您可以在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}
或类似的东西,希望它足以让你完成它