2010-03-10 143 views
0

我試圖使用LINQ來查詢Objets。我正在做以下事情:Linq To Objects外部連接

Dim myList As Generic.List(Of MyItem) = (From ThisItem In LinqToSqlObject.Items _ 
             Join Folder In LinqToSqlObject.Folders _ 
             On Folder.Id Equals Item.Id _ 
             Join thisParentItem As Item In LinqToSqlObject.Items _ 
             On thisParentItem.Id Equals Item.ItemId _ 
             Select New MyItem With {.ItemName = Item.Name, _ 
             .ParentItemName = thisParentItem.Name}).ToList 

但是,這將不會返回任何具有ParentItemId爲null的項目。 我正在嘗試執行左連接,以便返回所有「Item」,而不管它是否具有父項。我知道在C#中這是可行的,通過在連接上添加一個「到X」,然後從X.DefaultIfEmpty()中選擇,但這似乎不適用於VB.Net。

有誰知道如何做到這一點?

感謝

+0

可能重複[LINQ到SQL:多左外連接(http://stackoverflow.com/questions/267488/linq-to-sql-multiple-left-外連接) – Matt

回答

0

嘗試this例子。

編輯:哎呀錯過了vb.net的要求,對不起。

嘗試this answer到類似的問題。編輯(我在一個卷)

編輯發佈一個鏈接到錯誤的答案,但同樣的問題。

的vb.net答案是here

+0

嗨@Mike,我已經看到了這個(優秀的網站),但正如問題中所述,我知道這是可能的C#(根據您的鏈接中的代碼),但我不能得到它在VB.Net工作。 – Ben

+0

@本 - 對不起,我確實在第一關中錯過了。我已經用基於vb.net的鏈接更新了答案。對於那個很抱歉。 –

+0

@本,再次,發佈了錯誤的鏈接。我正在修復它。只是不是我的夜晚。 –