0

この linq 左外部結合クエリを完成させて、右テーブルの 2 番目の列 (tempData) が null の場合でも結果セットに含まれるように助けてもらえますか?

sortedData = From cs In mbCustomSort
             Order By cs(0)
             Group Join entry In tempData On cs(joinColumn) Equals entry(0) Into Group
             From last In Group.DefaultIfEmpty _
             Select New With {.groupField = cs(joinColumn)}
4

3 に答える 3

0

LINQPadのデフォルトの処理ではが許可されていないため、ここitem(fieldno)から再利用されたデータで実際のフィールド名を使用しました。これには、に対応するがない新しい行を追加することも含まれます。これは私のために働きます:MbcOrderIdMbtd

From cs In Mbcs _
Order By cs.Catalogid _
Group Join entry In mbtds On cs.OrderId Equals entry.OrderId Into Group _
From last In Group.DefaultIfEmpty _
Select cs.OrderId, last.Ocardtype

そして、「動作する」とは、追加した行がnull で表示されることを意味します(および、すでにあったOcardtype別の行も同様です)。Ocardtypenull

于 2012-11-01T13:11:27.057 に答える
0

申し訳ありませんが、C#で書いていますが、どうですか:

var sortedData = from cs in mbCustomSort orderby cs.JoinColumn
    join entry in tempData on cs.JoinColumn equals entry.OtherJoinColumn into Group
    from subentry in Group.DefaultIfEmpty()
    select new { groupField = cs.JoinColumn };
于 2012-10-31T16:54:55.837 に答える
0

(編集済み)

From last In Group、外部結合を内部結合に変換します。Group変数を使用し続けると、これは発生しません。

sortedData = From cs In mbCustomSort
     Order By cs(0)
     Group Join entry In tempData On cs(joinColumn) Equals entry(0) Into Group
     Select New With {.groupField = cs(joinColumn), 
                      .col2 = Group(1).RightColumn }

RightColumn「インメモリクエリ」オブジェクトのプロパティで変更します。

于 2012-10-31T21:12:00.677 に答える