问题描述
||
考虑图中的数据库架构。
我需要一个linq-to-entities语句,该语句将检索作者及其按作者分组的相应书籍。例如,我要显示以下内容:
authorName8
bookTitle27
bookTitle35
bookTitle62
authorName37
bookTitle9
bookTitle51
另一个约束是分组项目的对象必须可以通过一种方法返回。
是否有人可以制定加入和分组声明(a)按作者姓名排序,(b)按作者姓名和书名排序?
解决方法
您没有提到正在使用哪个版本的EF,或者您是否需要按某种条件过滤作者或按某种条件过滤书籍。将获取所有内容的常规查询如下所示:
List<Author> authorsWithBooks =
context.
Authors.
Include(a => a.Books). // For EF 4.1
/*Include(\"Books\"). instead for previous versions of EF */
/*Where(a => !a.IsDeleted). if you want to filter the authors */
ToList();
如果要过滤藏书,则必须编写更详细的查询。
, var query =(来自MyDataContext.Aurthor中的客户)
包括(author => author.Books);
这将使您成为所有作者,并渴望加载书籍以取得最佳性能。