두 번째로 당신이 요청합니다 .SelectMany(x => x.Contacts)
, 당신은 현재 컬렉션과 함께 일하고 있습니다 ContactDetails
. 당신이 사용할 수 있다는 것은 의심 스럽다 SelectMany
그 위에. 사용해야합니다 Select
대신에.
SelectMany
여러 항목 컬렉션을 선택하여 하나로 넣으려면 사용됩니다. IEnumerable
. Select
개별 분야에서 사용됩니다. 유형의 객체로 작업하고 있기 때문에 ContactDetail
(내가 연락처가 하나만있을 수 있다고 생각하는 경우) 사용이 필요합니다. Select
편집 : 다음은 간단히 말해서 단계별로하고있는 일입니다.
groups_to_querry.SelectMany(x => x.Contacts)
: 쿼리하려는 모든 그룹에서 많은 연락처를 모두 선택합니다. 각 그룹에는 많은 연락처가 있으므로 모두 하나의 연락처에 있습니다. IEnumerable
유형 모음 Contact
.Where(x => x.ID == Guid.Empty)
: ...하지만 빈 ID와의 연락처 만
.SelectMany(p => p.ContactDetails)
: 그런 다음 해당 연락처의 모든 연락처 검사를 선택하십시오. 각 연락처에는 많은 연락처가 있습니다. IEnumerable
유형 모음 ContactDetail
.Where(x => x.ID == Guid.Empty)
: ...하지만 빈 ID가있는 연락처도 있습니다.
.SelectMany(x => x.Contacts);
: 이제 각 contactDetails의 많은 연락처를 선택하십시오. 그러나 컴파일러는 연락처와 연락처간에 일대일 관계가 있음을 알고 있기 때문에 (다른 방법으로는 다른 방법이 아님) 그 진술은 불가능하므로 컴파일 오류가 표시됩니다.