LINQ:如何在Any()方法之后选择一列

时间:2017-04-15 16:25:10

标签: c# entity-framework linq

我需要从以下查询中选择DeviceTypeID,但我不能,因为我使用.Any()方法启动了查询。请帮我选择DeviceTypeID

var Ids = query.Any(a => a.HospitalDepartments.Any(b => 
                        b.Units.Any(c => c.Devices.Select(f => f.DeviceTypeID)))).ToList();

1 个答案:

答案 0 :(得分:4)

Any检查集合中是否至少有一个项符合谓词。从它看起来你想要的是一种收集所有层次结构中所有DeviceTypeID的方法。如果是,那么您需要SelectMany

var ids = query.SelectMany(a => 
              a.HospitalDepartments.SelectMany(b => 
                  b.Units.SelectMany(c => 
                      c.Devices.Select(f => f.DeviceTypeID)))).ToList();