linq to实体连接3个表和group by语句

linq to实体连接3个表和group by语句,linq,entity-framework,join,linq-to-entities,group-by,Linq,Entity Framework,Join,Linq To Entities,Group By,考虑图中的数据库模式 我需要一个LINQtoEntities语句,它将检索按作者分组的作者及其各自的书籍。例如,我想显示如下内容: authorName8 bookTitle27 bookTitle35 bookTitle62 authorName37 bookTitle9 bookTitle51 另一个约束是分组项的项目必须通过方法返回 任何人都可以通过语句a按作者姓名排序,b按作者姓名和书名排序来制定join和group吗?var query=from customer

考虑图中的数据库模式

我需要一个LINQtoEntities语句,它将检索按作者分组的作者及其各自的书籍。例如,我想显示如下内容:

authorName8 bookTitle27 bookTitle35 bookTitle62 authorName37 bookTitle9 bookTitle51 另一个约束是分组项的项目必须通过方法返回


任何人都可以通过语句a按作者姓名排序,b按作者姓名和书名排序来制定join和group吗?

var query=from customer in MyDataContext.aurtor select author .Includingauthor=>author.Books


这会让你得到所有的作者和渴望加载的最佳性能的书籍

var query=来自MyDataContext中的客户。aurtor选择作者 .Includingauthor=>author.Books


这会让你得到所有的作者和渴望加载的最佳性能的书籍

您没有提到您使用的是哪个版本的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();

如果你想过滤藏书,你必须编写一个更详细的查询。

你没有提到你使用的是哪个版本的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();

如果你想过滤藏书,你必须编写一个更详细的查询。

EF生成了什么模型?作者和书籍?EF生成了哪些模型?作者与书籍?:我遇到了一个技术难题——可能是因为我首先应用了代码——让您的方法在我的案例中发挥作用,但我倾向于相信Include方法可能是分组技巧的原因。@Yakimich::如何控制作者姓名和书名的顺序?要排序作者,请在Include之后添加OrderBya=>a.Name。不过,订购这些书更具挑战性。您是否在使用EF 4.1?:我遇到了一个技术难题—可能是因为我先应用了代码—以便让您的方法在我的案例中发挥作用,但我倾向于相信Include方法可能是分组技巧的原因。@Yakimich::如何控制作者姓名和书名的顺序?要排序作者,请在Include之后添加OrderBya=>a.Name。不过,订购这些书更具挑战性。你在使用EF4.1吗?