2

我正在使用 EF 4。

我有一个IEnumerable<Type01>每个项目(的Type01)都有一个IEnumerable<Type02>

这可以解释:

Type01 objType01 = ...;
IEnumerable<Type02> en = objType01.allObjType02;

我需要做(使用 LINQ)一个选择,它给我一个IEnumerable<Type01>结果,但“记录计数”必须与所有Type02项目的“记录计数”总和相同。

例如。对于此列表:

myItem01a
    myItem02a
    myItem02b
myItem01b
    myItem02c
    myItem02d
    myItem02e

选择返回必须是:

myItem01a
myItem01a
myItem01b
myItem01b
myItem01b

我知道如何通过使用老式 SQL(JOIN 子句)来做到这一点。但我对 LINQ 表达式相当陌生。怎么可能做到?

4

1 回答 1

6

欺骗。使用SelectMany(或等效的倍数froms)迭代所有s,但每次Type02只产生 a :Type01

var repeatedType01s = 
    from t01 in enumerableOfType01s
    from t02 in t01.allObjType02
    select t01;

现在repeatedType01sIEnumerable<Type01>你想要的基数。

于 2012-06-25T14:58:13.100 回答