有沒有一種方法來實現我使用LINQ獲得的所有可查詢對象?實現所有查詢對象
比方說,我想作者的列表,基於某些標準的圖書(這是一個示例查詢,我希望一些實際的類是沒有必要)的列表:
var authorData = from a in ctx.Authors
where a.Age > 30
select new // anon class
{
Name = a.Name,
City = a.Address.City,
Books = from b in ctx.Books
where b.Price > 10
&& b.AuthorId == a.Id
select new // anon class
{
Name = b.Name,
Price = b.Price,
}
};
現在我想要遍歷作者authorData
並做一些工作,可以說打印書數。書籍列表將是IQueryable
類型,並且爲每個作者獲取這些對象將產生一個新的查詢到我想要避免的DB。
foreach(var author in authorData.ToList())
{
Console.WriteLine(author.Books.Count());
}
如何避免每個作者的新SQL查詢?有沒有辦法讓書籍匿名類對象與作者匿名類同時實現?
編輯: 的最終目標是讓儘可能少的DB讀數可能的,但有所有的Author
和Book
對象。在每個foreach循環迭代中實現書籍看起來很可怕。
我甚至會接受一個答案,將得到像詞典之類的,讓作者/預訂連接方便單獨藏書的對象,但並不需要很多數據庫讀取
這是我嘗試的第一件事,但它仍然將本書作爲IQueryable離開課堂。 –