我有两张桌子
TableA
aId
aValue
TableB
bId
aId
bValue
我希望通过aId
加入这两个表格,并从那里按bValue
var result =
from a in db.TableA
join b in db.TableB on a.aId equals b.aId
group b by b.bValue into x
select new {x};
我的代码无法识别群组后的加入。换句话说,分组工作,但连接不起作用(或者至少我无法弄清楚如何在连接后访问所有数据)。
答案 0 :(得分:22)
group
和by
之间的表达式会创建组元素。
var result =
from a in db.TableA
join b in db.TableB on a.aId equals b.aId
group new {A = a, B = b} by b.bValue;
// demonstration of navigating the result
foreach(var g in result)
{
Console.WriteLine(g.Key);
foreach(var x in g)
{
Console.WriteLine(x.A.aId);
Console.WriteLine(x.B.bId);
}
}
答案 1 :(得分:0)
您的result
对象将是IQueryable<IGrouping<T>>
,因此您必须访问其中一个结果集合IGrouping<T>
,然后深入那个< / em>集合以获取x
个对象。