C# · 12月 27, 2021

c# – 在加入两个表后访问所有数据,并使用linq进行分组

我有两张桌子 TableAaIdaValueTableBbIdaIdbValue

我想通过aId加入这两个表,并从那里将它们分组为bValue

var result = from a in db.TableAjoin b in db.TableB on a.aId equals b.aIdgroup b by b.bValue into xselect new {x};

我的代码无法识别组之后的连接.换句话说,分组工作,但连接不(或至少我无法弄清楚如何访问连接后的所有数据).

解决方法 group和the之间的表达式创建组元素. 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 resultforeach(var g in result){ Console.WriteLine(g.Key); foreach(var x in g) { Console.WriteLine(x.A.aId); Console.WriteLine(x.B.bId); }}