如何使用Linq获取实体集合属性的项目?

时间:2015-03-31 01:55:22

标签: c# linq entity-framework

假设我们的酒店有房间,每个房间都有房间号码,我如何使用Linq而不是foreach显示从context.Hotels开始的所有房间号码?

插图:

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 个答案:

答案 0 :(得分: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();