2010-04-29 2 views
0

엔티티 세트 오브젝트를 사용하여 서로 중첩 된 3 개의 데이터 세트 오브젝트가 있습니다. 나는이select 문을 사용하는 다중 레벨 오브젝트의 Linq 그룹

var newList = from s in MainTable 
from a in s.SubTable1 where a.ColumnX = "value" 
from b in a.Detail where b.Name = "searchValue" 
select new { 
    ID = s.ID, 
    Company = a.CompanyName, 
    Name = b.Name, 
    Date = s.DueDate 
    Colour = b.Colour, 
    Town = a.Town 
}; 

같은 데이터를 선택하고 이것이 잘 작동하지만 내가 중복 행의 부하를 얻을 수 있도록 문제는 각각의 이름 값에 대한 상세 객체 목록/테이블의 많은 레코드가 있고, 따라서 I b.Name 당 하나의 레코드 만 표시하려고합니다. 내가 선택하기 전에

group s by b.Name into g 

퍼팅 시도했다, 그러나이 선택은 내가 원하는 열을 선택하는 저를 가능하게 막을 것 (실제로는 더있다). 출력 행을 "플랫"형식으로 유지하면서이 상황에서 그룹 명령을 사용하려면 어떻게해야합니까?

+0

물론 결과를 그룹화하면 두 개 이상의 하위 항목이있을 수 있고 집계 열을 지정해야하기 때문에 자식 열을 선택할 수 없습니다. sum, max etx – alejandrobog

+0

맨 아래 자식에서 1 열만 선택했습니다. 다른 모든 열은 상단 또는 중간 부모로부터 온 것입니다. 따라서 모호성이있는 이유는 없지만 SQL 포인트에서 무엇을 의미하는지 알 수 있습니다 보기의. –

+0

예, 모든 열을 그룹화하여 분류했습니다. 대답을 Alejandrobog로 입력 해 주시면 정답과 관련 점수를 알려 드리겠습니다. –

답변

0

가까운 질문에 대한 답변으로 덧글 추가 : - 물론 결과를 그룹화하면 두 개 이상의 하위 항목이있을 수 있고 집계 열을 지정해야하기 때문에 하위 항목을 선택할 수 없습니다. 예를 들어 sum, max etx -