根据有条件的小孩的孩子选择

时间:2018-06-16 12:25:02

标签: c# linq

我有一个拥有房屋清单的用户,所有房屋都有洗碗机清单。

现在,我想获得一个名为“Siemens”的洗碗机用户列表。

如何在LINQ中编写能够做到这一点的内容?

我目前的尝试是这样的:

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

1 个答案:

答案 0 :(得分:3)

使用Any进行过滤,而不是尝试选择所有这些

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