2017-08-02 11 views
-1

現在の.netバージョンで動作するソリューションが見つかりませんでした。VB.net LINQはすべての結果で結合しました

私は注文のリストを持っており、私はいくつかの注文のための追加情報のリストを持っています。 (注文書には追加情報がある場合とない場合があります)。 私はすべての注文と追加情報(存在する場合)を表示する方法を探しています。

 Dim res = From k In o.OrdemItens 
      Join r In aditionalInformation On r.idReqCTP Equals k.Controle 
      Group By k.Controle Into Group 
      From g In Group.DefaultIfEmpty 
      Select g.k.Controle, g.r.Status 

をしかし、それは働いていない:

が、私はこれをしようとしています。注文に追加情報がない場合、何も返されません。

誰かが私を助けることができますか? ありがとうございます。

私はあなたがVBで明示的である Group Joinを使用したいと思います

答えて

1

Dim res = From k In o.OrdemItens 
      Group Join r In aditionalInformation On r.idReqCTP Equals k.Controle Into rj = Group 
      Select k.Controle, Statuses = (From r2 In rj Select r2.Status) 

あなたが与えられたkためrjで複数の一致を持っている可能性がある場合、私は知りませんでしたので、私はそれに対してSelectを走りました。

あなたはステータスでリストをしたくない場合は、あなたがそれを平らにすることができます

Dim res = From k In o.OrdemItens 
      Group Join r In aditionalInformation On r.idReqCTP Equals k.Controle Into rj = Group 
      From r2 in rj.DefaultIfEmpty() 
      Select k.Controle, r2?.Status 

あなたがしなければならないようにするには、データベースの?.を使用することはできません。

Dim res = From k In o.OrdemItens 
      Group Join r In aditionalInformation On r.idReqCTP Equals k.Controle Into rj = Group 
      From r2 in rj.DefaultIfEmpty() 
      Select k.Controle, Status = If(r2 Is Nothing, Nothing, r2.Status) 
+0

感謝を君は。出来た。 私は "... rj = Group ..."に追加する必要がありました。 – osmarditto

+0

そのことについて申し訳ありません - 主にC#ユーザーです。 – NetMage

関連する問題