2012-04-11 24 views
0

我的工作包含5個表項目:如何通過遙遠變量從深層關係中返回包含相關數據的查詢?


這 - > ThisThat <凹口 - - > ThatFoo < --foo

我已經定義過的表之間的關係模型在asp.net實體框架中:

'This'包含列:ThisID(PK),Name。

'ThisThat'包含列:ThisThatID(PK),ThisID(FK),ThatID(FK)。

'That'包含列:ThatID(PK),Name。 'ThatFoo'包含列:ThatFooID(PK),ThatID(FK),FooID(FK)。


好吧,所以我有'FooID',我需要得到一個相關的'ThisThat'的列表。

這是我已經試過:

int FooID = 1; 
IEnumerable<int> thatIDs = db.ThatFoo.Where(tf=>tf.FooID == FooID).ToList(); 
IEnumerable<ThisThat> thisthats = db.ThisThat.Where(tt=>tt.ThatID == thatIDs).ToList(); 

和:

IEnumerable<ThisThat> thisthat = db.ThisThat.Include(p=>p.That.ThatFoo.Where(x=>x.FooID == FooID)).ToList(); 

我也用。選擇和.SelectMany發揮各地。我谷歌搜索了各種各樣的東西,但我沒有找到任何與我的情況有關的東西。

我不太確定還有什麼其他的嘗試...建議(請&感謝閱讀)?

回答

1

嘗試

IEnumerable<ThisThat> thisthats = db.ThisThat 
    .Where(tt=>tt.That.ThatFoos.Any(tf =>tf.FooID == FooID)).ToList(); 
+0

真棒醬!謝謝! :) – skhot 2012-04-11 05:08:05