Author
は多くがBook
です。表Book
はAuthor_Id
です。各親から1人の子供だけを選択してください。
私はIQueryable<Book>
を返すLINQクエリが必要です(などでナビゲートすることができますが、著者ごとに1冊しか表示されません)。
LINQでどうすればいいですか?
Author
は多くがBook
です。表Book
はAuthor_Id
です。各親から1人の子供だけを選択してください。
私はIQueryable<Book>
を返すLINQクエリが必要です(などでナビゲートすることができますが、著者ごとに1冊しか表示されません)。
LINQでどうすればいいですか?
これがそれであるかなり確信:
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);
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);
}
感謝のためにこれを行うにはあまりハック方法私は言ったように、私は匿名型で作業したくないのです。 "ブック"タイプ? –
は 'IQueryable
あなたの質問が間違っている –
このソリューションは、実際には私のものより優れており、SQLの生成量は少なくなっています。 –
@Vince Panuccioこれは、Take(1)を使用してかなりハッキリと感じるほどの魅力です! – aligray
@VitorReis質問は、著者ごとに1冊の本を指定しています。それ以上の情報は提供していないため、要件を満たしていると感じています。 –