我有一个实体房,里面有一个房间清单。 我正在使用实体框架和linq。我想获取所有仅列出大于2米的房间的房屋。我不想带所有房间然后进行过滤,也不想创建一个新对象来接收房屋和经过过滤的房间列表,如下所示:
repo.Include(h => h.Rooms).Select(h => new {
house => h,
rooms => rooms.Where(...)
}
有可能吗?
答案 0 :(得分:0)
var houses = repo.Where(x => x.RoomsList.Any(y => y.Length > 2));
从“房间列表”中具有至少一个“房间”且长度大于2的“房屋”中返回所有元素。
如果您只希望每间房子的长度大于2米的房间,则可以使用以下方法:
var roomsList = houses.Select(x => new
{
x.House,
Rooms = x.RoomsList.Where(y => y.Length > 2)
});