我有兩個表彼此有關係如何在實體框架(多個地方或聯合)中執行此操作?
表A與表B有一對多的關係,所以這會在每個表中創建一個導航屬性。
現在我需要檢查表A(用戶名)的值,我需要檢查表B(ClubId)的值。
所以,在我的腦海它會是這樣的
Join the tables together
Where A.userName == "bob" &&
where B.clubId == "Car"
// return the count.
但現在我知道有實體的東西,應該使加入較少見,所以我想知道如果我可以用加入再去做。
我想這
int count = Entity.TableA.where(a => a.userName == "bob" && a.TableB.where(i => i.ClubId == "Car")).Count();
所以這也不行,因爲它不會返回正確的類型(第2位置)。這就是我的想法,我期望如何完成工作。
那麼它應該如何看待?
P.S
我寧願一個例子中的LINQ查詢方法做像我上面那樣。
啊。 哇。我不確定我的情況更好。 selectMany讓我失望。那麼如果我需要另一個過濾器會怎麼樣?我會添加另一個selectMany嗎? 那麼第一種方法的語法的作品我不知道它是否內部下降,並做第二件事。所有的查詢將採用相同的執行時間。 什麼是第二個SelectMany的。像什麼是a => a.TableB,(a,b)=>)呢? – chobo2 2009-08-13 17:53:22
我已經在查詢翻譯中修復了該帖子。 第一個SelectMany本質上「扁平化」了你的嵌套集合,從所有A中返回所有B的序列。第二個SelectMany接受兩個委託,一個「collectionSelector」從A和一個「resultSelector」中檢索B的集合,以指定給定A和B的返回值。LINQ只是選擇兩個輸入對象,用於查詢的其餘部分。 – dahlbyk 2009-08-13 18:05:04