2012-09-18 31 views
0

所有迭代,的LINQ - 選擇或通過所有孫子用VB.NET

我使用LINQ和Entity Framework在VB.NET(athough我使用nHydrate)實驗。比方說,我有3個表如下:

Diagram

所以表1是具有數記錄/實體的頂層祖父母。

我想選擇與特定Table1實例相關的所有Table3記錄/實體。我想做這個作爲一些搜索功能的一部分。

我想利用表1的實例作爲我的出發點,即

Public Class MySearch 

    Private _lookUnder As System.Data.Objects.DataClasses.EntityObject 

    Public Sub Search() 
     ... 
     CType(_lookUnder, Table1) ' ???? need to linq here ???? 
     ... 
    End Sub 
End Class 

可以這樣完全使用LINQ做了什麼?歡迎C#答案。

我試過看着this,但沒有太多幫助。

感謝,

Andez

回答

2

理想情況下,你應該有訪問的背景下,讓這樣的事情可能(C#):

var relatedTable3s = context.Table3s.Where(t3 => t3.Table2.Table1.id == _lookUnder.id); 

我想這樣的事情可能會奏效,太:

var relatedTable3s = 
    from t2 in _lookUnder.Table2s.AsQueryable() 
    from t3 in t2.Table3s 
    select t3; 

...否則寫爲:

var relatedTable3s = _lookUnder.Table2s.AsQueryable() 
    .SelectMany(t2 => t2.Table3s); 
+0

謝謝,我會給你一個去 – Andez

+0

非常感謝。工作一種享受,併爲我增加更多的理解。 – Andez