考虑图片中的数据库模式。
我需要一个linq-to-entities语句来检索由作者分组的作者及其各自的书籍。例如,我想显示如下内容:
authorName8 bookTitle27 bookTitle35 bookTitle62 authorName37 bookTitle9 bookTitle51
附加约束是分组项目的对象必须可以通过方法返回。
任何人都可以制定连接和分组声明(a)按作者姓名排序,(b)按作者姓名和书名排序吗?
答案 0 :(得分:1)
您没有提到您正在使用哪个版本的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();
如果您想过滤图书馆藏,您必须写一个更精细的查询。
答案 1 :(得分:0)
var query =(来自MyDataContext.Aurthor中的客户选择作者) 。包括(作者=&gt; author.Books);
这将使所有作者和渴望加载书籍以获得最佳性能。