Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将对象的所有子对象获取为集合_C#_Linq - Fatal编程技术网

C# 将对象的所有子对象获取为集合

C# 将对象的所有子对象获取为集合,c#,linq,C#,Linq,我有一个实体框架对象Zoo,它有一个名为Animals的属性。 一旦我得到动物园的(列表)集合,我想得到这个列表中所有动物的集合 我试过了 var animals = zoos.SelectMany(x=>x.Animals) 但是它说 方法“Enumerable.SelectMany”的类型参数 (IEnumerable,Func>)”无法从用法中推断。尝试显式指定类型参数 我只是想得到一个集合中的所有子实体,我正在尝试不用循环就可以做到这一点,只需要使用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生成的,并且在数据库中有一个关系,动物园可以有许多动物。

SelectMany
用于使集合扁平化。您应该使用
选择
,因为
动物
属性不是集合

动物
属性的类型是什么?动物是使用Zoo对象上的.Include属性检索的EF集合。您可以显示
动物园
类吗?通过编辑,动物的类型是Animal而不是IEnumerable…也许您的动物类?为什么是
动物类
不应该是
列出动物类
他想得到所有动物园的动物,所以他应该知道这一点。他的模型定义是,每个
动物园
只有一个
动物
。所以他会用
Select
Btw得到所有动物园的动物,这个模型对我来说很奇怪