C# 根据具有条件的子项的子项进行选择

C# 根据具有条件的子项的子项进行选择,c#,linq,C#,Linq,我有一个拥有房屋列表的用户,所有房屋都有洗碗机列表 现在,我想得到一份名为“西门子”的洗碗机用户名单 我如何用LINQ写一些可以做到这一点的东西 我当前的尝试如下所示: users = db.Users .SelectMany(u => u.Houses) .SelectMany(h => h.Dishwashers) .Where(d => d.Name=="Siemens"); 使用Any进行筛选,而不是尝试选择

我有一个拥有房屋列表的用户,所有房屋都有洗碗机列表

现在,我想得到一份名为“西门子”的洗碗机用户名单

我如何用LINQ写一些可以做到这一点的东西

我当前的尝试如下所示:

users = db.Users
          .SelectMany(u => u.Houses)
          .SelectMany(h => h.Dishwashers)
          .Where(d => d.Name=="Siemens");

使用
Any
进行筛选,而不是尝试选择全部

var users = db.Users
    .Where(u => 
        u.Houses.Any(h => 
            h.Dishwashers.Any(d => 
                d.Name == "Siemens"
            )
        )
    ).ToList();

它返回的是洗碗机列表,而不是用户列表,所以遗憾的是它不起作用