2012-03-05 85 views
0

我在我的MVC應用程序中有許多關係表,電影和代碼第一種方法中的標記。我希望用戶能夠選擇與標籤關聯的所有電影。例如,我想選擇標籤id = 2的所有電影。我需要lambda查詢,這將允許我這樣做。任何幫助讚賞。如何從多對多關係中選擇關聯表

回答

0

這是一個辦法:如果沒有與ID = 2沒有標籤

var moviesWithTag2 = context.Movies 
    .Where(m => m.Tags.Any(t => t.Id == 2)) 
    .ToList(); 

這將返回一個空的集合。

替代(這將返回null如果沒有與標識沒有標籤= 2):

var moviesWithTag2 = context.Tags 
    .Where(t => t.Id == 2) 
    .Select(t => t.Movies) 
    .SingleOrDefault(); 

如果您還想要Tag實體,你可以只加載它,包括它的電影:

var tag2 = context.Tags.Include(t => t.Movies) 
    .Single(t => t.Id == 2); 

tag2.Movies將包含標記爲Id = 2的電影。

+0

你已經使我的一天。謝謝你sooooo多。 – JED 2012-03-05 21:44:32

+0

再次感謝空集合對我來說很好。 – JED 2012-03-05 21:52:56