我有一个拥有房屋清单的用户,所有房屋都有洗碗机清单。
现在,我想获得一个名为“Siemens”的洗碗机用户列表。
如何在LINQ中编写能够做到这一点的内容?
我目前的尝试是这样的:
users = db.Users
.SelectMany(u => u.Houses)
.SelectMany(h => h.Dishwashers)
.Where(d => d.Name=="Siemens");
答案 0 :(得分:3)
使用Any
进行过滤,而不是尝试选择所有这些
var users = db.Users
.Where(u =>
u.Houses.Any(h =>
h.Dishwashers.Any(d =>
d.Name == "Siemens"
)
)
).ToList();