我有以下两个类:

书页

  • Chapter_title
  • 章节中的
  • 顺序
  • (其他领域)

  • 章节
  • Chapter_title
  • 订单

  • 我有一个book_pages及其章节标题的集合。我希望能够按照“chapter_title”在“章节”集合中出现的顺序对 book_page 集合进行排序,然后按“章节内的顺序”字段进行排序。

    我尝试在chapter_title 列上编写连接,然后按chapter.order 排序,然后按page.order_within_page 排序,但没有运气。有什么建议么?

    我的代码:
    var ordered_pages= from chapter in chapters
                            join page in book_pages
                            on chapter.chapter_title equals page.chapter_title
                            select new{order = chapter.order,page = page}
    
    var finalList = from row in ordered_pages.OrderBy(c => c.order).ThenBy(p =>p.page.order_within_chapter)
                    select row.page;
    

    这并没有真正起作用,即使这样做也很丑陋。我是否缺少使用 LINQ 来执行此操作的某种方法?

    最佳答案

    var a = db.Chapters;
    var b = db.Pages
    .Select(p => new { page = p, chapter = a.FirstOrDefault(q => q.Title == p.Caption) })
    .OrderBy(p=>p.chapter.order).ThenBy(p=>p.page.order).Select(p=>p.page).ToList();
    

    或者
    var b=db.Pages.Join(a, p => p.Caption, p => p.Title,
    (p, q) => new { page = p, chapter = q }).OrderBy(p => p.page.Code)
    .ThenBy(p => p.chapter.t1).Select(p=>p.page).ToList();
    

    关于c# - Linq to SQL join 然后按顺序排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8609149/

    10-09 01:38
    查看更多