LINQ查询选择所有不匹配的

时间:2012-06-03 06:17:05

标签: sql linq

我有以下LINQ查询,它选择所有具有与之关联的菜单的页面。我现在想要提取所有没有与之关联的菜单的页面,即“ AssociatedPages ”中不存在的页面中的所有页面。

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可以有一个太多与之关联的页面

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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()来电以提高效果。