2011-06-12 4 views
1

그림에서 데이터베이스 스키마를 고려하십시오.linq-to-entities가 3 개의 테이블 및 그룹 - 바이 명령문을 결합합니다.

나는 저자에 의해 그룹화 저자와 각각의 책을 검색하는 LINQ - 투 - 엔티티 문이 필요합니다. 예를 들어 다음과 같이 표시하려고합니다.

 
authorName8 
    bookTitle27 
    bookTitle35 
    bookTitle62 
authorName37 
    bookTitle9 
    bookTitle51 

추가 제한 사항은 그룹화 된 항목의 대상을 메소드에서 반환 할 수 있어야한다는 것입니다.

누구나 조인 및 그룹 별 구문 (a)을 작성자 이름순으로 정렬 할 수 있습니까? (b) 저자명 및 책 제목순으로 정렬 할 수 있습니까?

+0

'EF'는 어떤 모델을 생성합니까? '저자'와'책'? – aligray

답변

1

사용중인 EF 버전이나 작성자를 일정 조건으로 필터링해야하는지 또는 어떤 조건으로 책을 필터링해야하는지에 대해서는 언급하지 않았습니다. 모든 것을 가져옵니다 일반적인 쿼리는 다음과 같이 표시됩니다 :이 책의 컬렉션을 필터링하려면, 당신은 비록 더 정교한 쿼리를 작성해야합니다

List<Author> authorsWithBooks = 
       context. 
       Authors. 
       Include(a => a.Books). // For EF 4.1 
       /*Include("Books"). instead for previous versions of EF */ 
       /*Where(a => !a.IsDeleted). if you want to filter the authors */ 
       ToList(); 

.

+0

: 필자의 경우 접근 방식을 얻는 데 기술적으로 어려움이 있습니다. (아마도) 먼저 코드를 적용했기 때문에 (?), Include 메서드가 그룹화 트릭을 담당 할 수 있다고 생각합니다. – user669226

+0

@Yakimich :: 저자 이름과 책 제목 순서를 어떻게 제어합니까? – user669226

+0

작가에게 주문하려면'Include' 다음에'OrderBy (a => a.Name)'을 추가하십시오. 하지만 책 주문은 더욱 어려워졌습니다. EF 4.1을 사용하고 있습니까? – Yakimych

0

var query = (고객이 MyDataContext.Aurthor에서 선택) . 포함 (작성자 => author.Books);

이것은 모든 작성자를 얻고 열망하는 최고의 성능을 위해 책을로드합니다.

관련 문제