2011-06-02 7 views

答えて

4

これがそれであるかなり確信:

var books = from a in authors 
      from b in a.Books.Take(1) 
      select b); 

編集:

var books = authors.Select(author => author.Books.First()) 
        .Select(book => book); 
+0

このソリューションは、実際には私のものより優れており、SQLの生成量は少なくなっています。 –

+1

@Vince Panuccioこれは、Take(1)を使用してかなりハッキリと感じるほどの魅力です! – aligray

+1

@VitorReis質問は、著者ごとに1冊の本を指定しています。それ以上の情報は提供していないため、要件を満たしていると感じています。 –

3
var authorsWithFirstBook = 
    from book in Books 
    group book by book.Author into authorBooks 
    select authorBooks.First(); 

これは、あなたにグループの最初の本を与えるはずです。

ます。次に行うことができるはず

foreach (var book in authorsWithFirstBook) { 

    Console.WriteLine(book.Author.FirstName); 
} 
+0

感謝のためにこれを行うにはあまりハック方法私は言ったように、私は匿名型で作業したくないのです。 "ブック"タイプ? –

+0

は 'IQueryable 'を返します。正確にOPの質問:)。 –

+0

あなたの質問が間違っている –

関連する問題