问题描述
|
您可以在针对您的数据库的查询中使用SelectMany吗,如果可以的话,此列需要是哪种类型?我在弄乱LINQPad,每次尝试使用SelectMany时都会出错,从我读到的内容来看,这听起来像您的lambda表达式中的类型必须是集合。
解决方法
Houses.SelectMany(h => h.HousesPersons.Select(hp => hp.Person.Name))
如果您有3张桌子。房屋,房屋人和人。
Houses与使用HousesPersons来存储HouseId和PersonId的个人的关系是“一对多”。
该查询将为您提供平面列表中所有房屋的所有人列表,而不是按房屋分组。
编辑:对不起,我无法让AdventureWorks在我的机器上使用教科书示例。
,SelectMany
将序列的每个元素(即,枚举或列表的对象的属性)投影为IEnumerable<T>
,并将得到的序列序列展平为单个序列/IEnumerable<T>
。
话虽如此,它可能适用于Linq to Entities环境-您可以选择选择多个实体的导航属性(相关实体),然后将其吐出单个列表。