Error 4 Cannot implicitly convert type
'System.Collections.Generic.IEnumerable<System.Collections.Generic.IEnumerable<CCE_2009.Data.Person>>'
to
'System.Collections.Generic.IEnumerable<CCE_2009.Data.Person>'
生成自:
var RecoveryManagerQuery =
from RM in
(
from REP in e.Results
select REP.Organization.Representatives.Select(RM=>RM.Person)
)
select RM;
RecoveryManagers = new ObservableCollection<Person>(RecoveryManagerQuery.ToList());
为什么这个IEnumberable被嵌入 - 组织有一个或多个代表,每个代表与一个人只有一个人相关。
我想要一个符合此标准的人员名单.....
argghh ..
[R
答案 0 :(得分:3)
外部查询是多余的。我们可以通过删除它来清楚地说明这一点:
var RecoveryManagerQuery =
from REP in e.Results
select REP.Organization.Representatives.Select(RM=>RM.Person);
如您所见,select
子句为每个REP
说明选择与REP
组织中的代表相关联的所有人员。这意味着RecoveryManagerQuery
中的每个元素都将成为Person
个对象的集,而不是个别对象。您希望展平查询,以便它返回一组Person
个对象,而不是一组Person
个对象:
var RecoveryManagerQuery =
from REP in e.Results
from orgRep in REP.Organization.Representatives
select orgRep.Person;
编辑:以下是点符号:
e.Results.SelectMany(
REP => REP.Organization.Representatives,
(REP, orgRep) => orgRep.Person);
答案 1 :(得分:0)
你想要达到什么目的?由于嵌套的LINQ查询,您将获得IEnumerable的IEnumerable。
根据您要实现的目标,您可以将查询更改为:
var RecoveryManagerQuery =
from REP in e.Results
select REP.Organization.Representatives.Select(RM=>RM.Person);