使用LINQ分页对象列表

enb081

我有一个物品清单List<Parent> Parents

Parent班有一个List<Child> Children

到目前为止,我已经将分页应用于ParentsLINQ:

List<Parent> PageX = Parents.Skip(PageIndex * PageSize).Take(PageSize);

例如,如果PageSize = 2,我得到以下结果:

---------------第1页----------------------

父母1

儿童1

儿童2

儿童3

父母2

儿童1

儿童2

- - - - - - - - 第2页 - - - - - - - - - - -

父母3

儿童1

父母4

儿童1

儿童2

我要实现以下目标:

---------------第1页----------------------

父母1

儿童1

儿童2

- - - - - - - - 第2页 - - - - - - - - - - -

儿童3

父母2

儿童1

---------------第3页----------------------

儿童2

父母3

儿童1

我该如何实现?

克里斯多夫·芬克

您可以使用SelectMany

var page = parents.SelectMany(p => p.Children)
               .Skip(PageIndex * PageSize).Take(PageSize);

在这里看到一个正在工作的小提琴

更新:
我做了一些研究,因为这也引起了我的兴趣。使用以下假设:

  • 您正在使用EF
  • 您只有这种亲子关系级别
  • 您的实体拥有全部Position财产

您应该能够对数据库执行以下操作,以“在一个查询中”以正确的顺序获取页面的项目:

var pageItems = db.Parents.SelectMany(p => p.Children).Include(c => c.Parent)
                    .OrderBy(c => c.Parent.Position).ThenBy(c => c.Position)
                    .Skip(PageIndex * PageSize).Take(PageSize);

我没有测试此代码,因为目前我没有数据库可以测试,因此如果假设适合您的情况,请报告。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Linq进行分页

来自分类Dev

使用linQ将对象列表分组为新的对象列表

来自分类Dev

使用Linq获取列表中对象的索引

来自分类Dev

使用linq更新对象列表的逻辑

来自分类Dev

使用LINQ拒绝邮寄对象列表

来自分类Dev

使用LINQ更改列表中对象的属性

来自分类Dev

在LINQ中使用group by填充对象列表

来自分类Dev

使用动态 linq 过滤对象列表

来自分类Dev

使用LINQ从对象列表中获取不同的参数列表

来自分类Dev

使用 spring 我们如何从对象返回分页的对象列表

来自分类Dev

LINQ过滤对象列表

来自分类Dev

Linq搜索对象列表

来自分类Dev

使用firebase过滤分页列表

来自分类Dev

Linq查询包含对象列表的对象列表

来自分类Dev

在2个日期之间使用Linq计数对象列表

来自分类Dev

使用Linq创建对象列表与创建字典的性能比较?

来自分类Dev

如何使用linq和EntityFramework获得对象的补码列表

来自分类Dev

使用LINQ to SQL在字符串中搜索列表对象

来自分类Dev

使用LINQ,获取包含特定属性值的对象的列表

来自分类Dev

使用Linq匹配本地列表中任何对象的2属性

来自分类Dev

使用linq从多个列表中执行对象的方法

来自分类Dev

使用LINQ,获取包含特定属性值的对象的列表

来自分类Dev

c#使用Linq更新列表中的对象

来自分类Dev

LINQ 比较列表并使用找到的对象中的值更新属性

来自分类Dev

如何使用 linq 查询带有嵌套列表的对象?

来自分类Dev

使用 Linq 迭代数组并创建新的对象列表?

来自分类Dev

使用Linq将包含基本数据的对象列表分组为新的对象分组列表

来自分类Dev

使用LINQ按列表中的对象中的属性对列表中的对象进行分组

来自分类Dev

C#LINQ使用值列表按子列表过滤复杂对象列表

Related 相关文章

  1. 1

    使用Linq进行分页

  2. 2

    使用linQ将对象列表分组为新的对象列表

  3. 3

    使用Linq获取列表中对象的索引

  4. 4

    使用linq更新对象列表的逻辑

  5. 5

    使用LINQ拒绝邮寄对象列表

  6. 6

    使用LINQ更改列表中对象的属性

  7. 7

    在LINQ中使用group by填充对象列表

  8. 8

    使用动态 linq 过滤对象列表

  9. 9

    使用LINQ从对象列表中获取不同的参数列表

  10. 10

    使用 spring 我们如何从对象返回分页的对象列表

  11. 11

    LINQ过滤对象列表

  12. 12

    Linq搜索对象列表

  13. 13

    使用firebase过滤分页列表

  14. 14

    Linq查询包含对象列表的对象列表

  15. 15

    在2个日期之间使用Linq计数对象列表

  16. 16

    使用Linq创建对象列表与创建字典的性能比较?

  17. 17

    如何使用linq和EntityFramework获得对象的补码列表

  18. 18

    使用LINQ to SQL在字符串中搜索列表对象

  19. 19

    使用LINQ,获取包含特定属性值的对象的列表

  20. 20

    使用Linq匹配本地列表中任何对象的2属性

  21. 21

    使用linq从多个列表中执行对象的方法

  22. 22

    使用LINQ,获取包含特定属性值的对象的列表

  23. 23

    c#使用Linq更新列表中的对象

  24. 24

    LINQ 比较列表并使用找到的对象中的值更新属性

  25. 25

    如何使用 linq 查询带有嵌套列表的对象?

  26. 26

    使用 Linq 迭代数组并创建新的对象列表?

  27. 27

    使用Linq将包含基本数据的对象列表分组为新的对象分组列表

  28. 28

    使用LINQ按列表中的对象中的属性对列表中的对象进行分组

  29. 29

    C#LINQ使用值列表按子列表过滤复杂对象列表

热门标签

归档