一个
Author
可以有多个Book
。表Book
上有Author_Id
。
我想要一个返回IQueryable<Book>
的LINQ查询(这样我就可以使用Book.Author.Name
之类的东西进行导航(,但每个作者只能有一本书。
我如何使用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);
}