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