一個Author
可以有很多Book
。表Book
有Author_Id
就可以了。每個家長只選擇1個孩子
我想要一個返回IQueryable<Book>
的LINQ查詢(所以我可以用Book.Author.Name
和東西導航),但每個作者只有1本書。
我該如何用LINQ做這件事?
一個Author
可以有很多Book
。表Book
有Author_Id
就可以了。每個家長只選擇1個孩子
我想要一個返回IQueryable<Book>
的LINQ查詢(所以我可以用Book.Author.Name
和東西導航),但每個作者只有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問題爲每個作者指定一本書,它不會給出任何比這更多的信息,所以我覺得滿足要求。 –