13

私はこのクエリをグループに参加させています:

    foreach (var item in someList)
    {
                    var result = (from t1 in someContext.Table1
                                  join t2 in someContext.Table2 on new { t1.SomeID, item.SomeName} equals new {t2.SomeID, t2.SomeName} into j1 
                                  ...
    }

上記のようにグループに参加してもらうことは可能かどうか知りたいのですが?

new { t1.SomeID, item.SomeName} equals new {t2.SomeID, t2.SomeName}

item.SomeName私が繰り返しているリストから来ています。

そうでない場合、目的の結果を得るためにステートメントをどのように変更しますか?

4

2 に答える 2

30

equals式で使用されるプロパティのタイプは一致する必要があります。たとえば、Table1.SomeIDisInt32Table2.SomeIDisNullable<Int32>の場合、それらは一致しません。

編集

foreach (var item in someList)
    {
       var someName = item.SomeName;
       var result = (from t1 in someContext.Table1
                     join t2 in someContext.Table2 on 
                               new { t1.SomeID, SomeName = someName} 
                        equals new { t2.SomeID, t2.SomeName} into j1 
                                  ...
    }

item.SomeNameもt2.SomeNameと同じタイプです。

于 2012-04-13T08:14:45.363 に答える