3

我有一个这样的 LINQ 查询:通过实体框架导航属性链接的两个列表(两个实体都有多对多关系)

我想转换这个:

var query = (from a in listA 
             from b in a.ListB
             select new {T1=a, T2=b}

对于这样的事情:

var query = (from a in listA
             from b in a.ListB
             select new KeyValuePair<T1,List<T2>>{ T1=a , T2=b})

第一个查询产生一个像这样的项目列表:{(a,x), (a,y), (a,z), (b,x) ...}

第二个查询的目的是将结果合并到具有自己列表的项目中。

结果如下所示:

{(a,List with items x,y,z), (b, List with item x) ...}

我会很感激帮助。谢谢!

4

1 回答 1

7

编辑:感谢 Stijn 纠正我的答案。

看起来a已经包含相关b项目的列表,所以这不起作用吗?

var query = (from a in listA
             select new{ T1 = a, T2 = a.ListB });

您还可以将查询转换为字典:

var asDictionary = query.ToDictionary(item => item.T1, item => item.T2);
于 2012-07-26T00:17:07.603 回答