LINQ条件包含

4
我有一个函数。
public Menu Details(int? id)
    {
        return _dataContext.Menu.Include("ChildMenu").FirstOrDefault(m => m.MenuId == id);
    }

现在我需要为子列表ChildMenu添加条件,比如字段名为id。我该如何做?


我不太确定你想要做什么。你能否澄清一下问题? - Davy8
我有一个名为Menu的类,其属性包括menuid键,isdeleted布尔值,parentmenu(指向父对象Menu)和childmenu(菜单子对象列表)。因此,我需要获取具有每个子记录中isdeleted=false的子记录列表的父记录。 - kusanagi
1个回答

2
return _dataContext.Menu.Include("ChildMenu")
     .Where(m => m.MenuId == id && m.ChildMenu.IsDeleted == false).FirstOrDefault();

小心使用此解决方案,它不正确。在使用 ON ChildMenu.IsDeleted == 0 的 LEFT OUTER JOIN 时,我们仅为未删除的项目进行连接,但我们仍保留所有菜单项,只是所有 ChildMenu 属性将为 NULL。尽管上述解决方案执行了没有条件的 LEFT OUTER JOIN,但随后会从 MENU 中删除具有 Menu.ChildMenu.IsDeleted == 0 的项目。因此,这可能不是您想要的! - baHI

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接