나는 각 그룹의 첫 번째 레코드 선택이 LINQ 쿼리가 충족되는 경우에만 각 그룹의 첫 번째 레코드 :LINQ, 조건이
repo.GroupBy(x => x.Revision, (key, g) => g.OrderBy(y => y.CreationDate).First())
가 지금은 각 그룹에만 경우의 첫 번째 레코드를 선택합니다을 이 개체를 반환하고 내가 각각의 모든 첫 번째 레코드를 가져하지 않고 내 데이터베이스의 상태를 점검 할 수 있도록하려는 때문에 분명히
!x.Terminated
내가 내 GROUPBY에 어디를 추가 할 수 없습니다 : 기록은 조건을 만족 그룹화하고 거기에서 작동하십시오.
** 편집
내 디자인에 같은 개정을 공유 레코드 그룹은 같은 레지스터하지만 여러 번 편집 것을 의미한다. 이 방법으로 최근 생성 날짜가있는 레코드는 실제 개정 또는 레지스터 버전이며 그룹의 나머지 레코드는 기록입니다. 내 문제는 그룹의 실제 리비전 만 종료로 표시했기 때문에 그룹화하기 전에 종료 된 기능으로 필터링 할 수 없기 때문에 각 그룹을 생성 날짜별로 정렬하고 첫 번째 레코드 만 선택하는 것이 불가능하다는 것이 었습니다.
이제는 문제를 해결하기 위해 그룹을 만들기 전에 종료 된 레코드를 필터링하여 날짜별로 정렬하고 각 그룹의 첫 번째 레코드를 선택할 수 있도록 레지스터를 종료 할 때마다 전체 그룹을 종료로 표시 할 것입니다. @Jon Skeet과 @Thomas Andre Lian이 제안한 것처럼.
잠시 동안 대답을하지 않고 질문을 할 수 있습니다. 누군가가 그룹화, 정렬 및 각 그룹의 첫 번째 레코드를 선택한 후 종료 된 기능으로 필터링 할 수있는 다른 것을 제안 할 수 있습니다.
종료 된 레코드를 완전히 제외시킬 것인지 여부는 확실하지 않습니다. 그렇다면 단순히 'repo.Where (x =>! x.Terminated) .GroupBy (...)'를 사용하지 않는 것이 좋습니다. –
'GroupBy' 다음에'Where' *를 추가하지 않을 이유를 설명해 주시겠습니까? 감사합니다 –
@ user1892538 컴파일러에서 다음 오류를 제공합니다. 'System.Linq.IQueryable'에 "Where"및 최상의 확장 메서드 오버로드에 대한 정의가 없습니다. 'System.Linq.Enumerable.Where (System.Collection.Generic .IEnumerable , System.Func ) '에 잘못된 인수가 있습니다. –