2014-03-13 183 views
1

我有3個表對於多對多的關係。實體框架多對多選擇

MailLists => MailListInGroups < =郵件組

而且MailListInGroups表等的下方;

MLID MGID 

2   1 

2   3 

3   2 

3   3 

4   1 

4   4 

5   1 

5   5 

6   2 

6   5 

7   2 

7   3 

My MailGroups Table below;

MGID 

1 Türkiye 

2 İtalya 

3 Çok İyi 

4 İyi 

5 Orta 

和我的MailLists Table below;

MLID 

2 [email protected] NULL NULL 

3 [email protected] NULL NULL 

4 [email protected] NULL NULL 

5 [email protected] NULL NULL 

6 [email protected] NULL NULL 

7 [email protected] NULL NULL 

我需要獲取到MailGroupID只是2和3。

例如int[] ints= 2,3

public ActionResult SelectGroup(int[] ints) 
{ 
    var mails = new List<MailList>(); 
    var groups = ints.Select(item => _bb.MailGroups.Include("MailLists").Where(m => m.MailGroupID == item)).ToList();      
} 

組選擇所有包括MailGroupID的2個3行。(MLID = 2,3,6,7)。但我只需要2行(MLID = 3,7)如何選擇2個MLID?

回答

0

試試這個

public ActionResult SelectGroup(int[] ints) 
{  
    var listToFilter = new HashSet<int>(ints);  
    var list = _bb.MailGroups.Where(m => listToFilter.Contains(m.ID)) 
          .SelectMany(m => m.MailLists); 
} 

更新:

我認爲u需要改變你的方法是這樣的:

public ActionResult SelectGroup(int[] mailGroupIds, int[] mailListIds) 
{   
    var list = _bb.MailGroups.Where(m => mailGroupIds.Contains(m.ID)) 
          .SelectMany(m => m.MailLists) 
          .Where(l => mailListIds.Contains(l.ID)); 
} 
+0

不起作用。這段代碼返回了5個MailList結果。 2,3,3,6,7,7 – user181929

+0

我添加了上面的其他表......感謝您的回覆。 – user181929

+0

我需要意大利和ÇokİyiMailLists結果.... – user181929