2010-09-25 65 views
0

我有以下實體幫助,LINQ to SQL的多對多查詢

A_Entity 
----------- 
AId 

AB_Entity 
----------- 
AId 
BId 

B_Entity 
----------- 
BId 

我有一個功能,有助於建立基於提供的輸入查詢。在這種情況下,我必須建立一個查詢,以獲取具有匹配中標全部A_Entities(作爲輸入提供的功能)

public static IQueryable<A_Entity> BuildQuery(IQueryable<A_Entity> query, int BId) 
{ 
    // Something like query.where(a => a.select_all_a_that_have corresponding_b_with_Id_equalto_BId) 
} 

我知道有AB_Entity和A_Entity之間要加入,但不知道如何應用它構建IQueryable並返回。

感謝

+0

現就A_Entity有導航性能?也就是說,A_Entity是否有一個屬性AB_Entities?如果不是的話,你需要傳遞一個方法來構造一個AB_Entity和B_Entity的查詢來創建連接。 – Jeff 2010-09-25 00:07:43

+0

@ JeffN825:是的。 – stackoverflowuser 2010-09-25 00:08:18

回答

1
query = query.Where(a => a.AB_Entities.Any(ab => ab.BId == BId)); 
return query; 
+0

這是行不通的,因爲AB_Entities是一個實體集 stackoverflowuser 2010-09-25 00:12:49

+0

對不起。愚蠢的錯誤。 – Jeff 2010-09-25 00:13:43