让对象的所有孩子都成为一个集合

时间:2015-07-31 16:27:21

标签: c# linq

我有一个实体框架对象Zoo,它有一个名为Animals的属性。 一旦我得到动物园(列表)的集合,我就想得到这个列表中所有动物的集合

我试过了

var animals = zoos.SelectMany(x=>x.Animals) 

但它说

  

方法' Enumerable.SelectMany的类型参数   (IEnumerable,Func>)'无法从使用中推断出来。尝试显式指定类型参数。

我只是想在集合中获取所有子实体,我试图在没有循环的情况下执行此操作,只需使用LINQ即可获得我想要的内容。

public partial class Zoo
{      
    ...
    public virtual Animal Aminals{ get; set; }
    ...
}
public partial class Animal{..}

这些对象是EF生成的,并且在db中与动物园有很多动物有关系。

1 个答案:

答案 0 :(得分:2)

SelectMany用于使集合变得扁平化。您应该使用Select,因为Animals属性不是集合