2015-03-31 66 views
0

假设我们有酒店有房间,每个房间都有房间号码,我如何使用Linq而不是foreach显示从context.Hotels开始的所有房间号码?如何使用Linq获取实体集合属性的项目?

插图:

var Rooms = context.Hotels.Select(e => e.Rooms); 

foreach (var room in Rooms) 
{ 
    var list = room.Select(r => r.Number); 
    foreach(number in list) 
    { 
     Console.WriteLine(number); 
    } 
} 

很显然,我可以直接从房间实体显示数字,但是这不是我实际的代码只是为了说明我想做的事情。

回答

1

如何简单地选择房号,使用SelectMany,如:

var roomNumbers = context.Hotels.SelectMany(h => h.Rooms.Select(r => r.Number)); 

情况下或者在他们需要的是不同的数字:

var roomNumbers = context.Hotels.SelectMany(h => h.Rooms.Select(r => r.Number)).Distinct(); 
+0

谢谢正是我需要的!我一直在看到这种方法突然出现在IntelliSense中,并且忽略了它 – 2015-03-31 02:06:35

相关问题