2012-06-03 125 views
1

我有以下LINQ查詢,選擇所有頁面有一個菜單與他們關聯。我現在要抽出所有沒有與它們關聯的菜單的頁面I.e ..頁面中的所有頁面不存在於「AssociatedPages」中。LINQ查詢選擇所有不匹配

var AssociatedPages = (from mm in db.MainMenus 
          join p in db.Pages on mm.MainMenuPageFK equals p.PageID 
         select p); 

var unAssociatedPages = (from p in db.Pages 
          where ??? 
          select p); 
return View(unAssociatedPages); 

我以前在SQL中做過這件事,但我不確定LINQ語法。

的設置是一個MainMenu的可以有它

任何幫助,將不勝感激關聯的一個頁面太多。

回答

3

試試這個:

var unAssociatedPages = 
    from p in db.Pages 
    join mm in db.MainMenus on p.PageID equals mm.MainMenuPageFK into mms 
    where !mms.Any() 
    select p; 

您可能會發現,你需要在幾個.ToArray()來電彈出來提高性能。

+0

這裏還有一點要學習LINQ!直到現在,任何()都不在我的詞彙表中。它完美的工作,謝謝 – Bojangles