2

私はEF4を使用しています。

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

浮気。すべてのsを反復するためSelectManyに(または同等の複数のs)を使用しますが、毎回のラウンドのみを生成します。fromType02Type01

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

repeatedType01sIEnumerable<Type01>あなたが望むカーディナリティを持っています。

于 2012-06-25T14:58:13.100 に答える