将IQueryable IEnumerable实体转换为列表

时间:2018-02-27 22:29:54

标签: asp.net-mvc entity-framework linq lambda

我在下面有这个查询,它会返回一个

IQueryable<IEnumerable<YogaSpaceEvent>>

但我希望山雀能够返回一份YogaSpaceEvents列表

var listYogaEvents = dbContext.YogaProfiles.Select(i => i.YogaSpaceEvents.Where(j => j.EventStatus == YogaSpaceEventStatus.Active));

如何让它返回

List<YogaSpaceEvents>

1 个答案:

答案 0 :(得分:1)

Select更改为SelectMany,然后按以下方式致电ToList

List<YogaSpaceEvents> result = 
       dbContext.YogaProfiles
                .SelectMany(i => i.YogaSpaceEvents.Where(j => 
                          j.EventStatus == YogaSpaceEventStatus.Active)).ToList();

这将折叠(展平)所有嵌套的IEnumerable<YogaSpaceEvent>,然后将元素累积到List实例中。