Petapoco分页sql查看一对多

问题描述 投票:1回答:1

我正在尝试通过分页为我的搜索结果创建一个搜索页面。

问题:我有一个表X.这个表在我的视图(sql)中有20个一对多的表关系。对于我的表中的1行,X在我的视图(sql)中等于200有时是100,50行。我需要将所有这些结果放在一行中。

最后:就像我说的X表1行可以从视图中获得50行或5或200行作为搜索结果。

我使用的是asp.net,我的数据库是SQL 2014.I我正在使用petapoco(orm)。

我不知道一对多查看分页。你有建议解决我的问题吗?

c# sql one-to-many petapoco
1个回答
0
投票

PetaPoco分页方法有一个过载,你可以提供选择和分页Page<T> Page<T>(long page, long itemsPerPage, Sql sqlCount, Sql sqlPage);的查询。这允许您进行自定义分页。

PetaPoco中的分页本质上是一个查询来计算记录总数和查询来拉取当前页面。你可以用T ExecuteScalar<T>List<T> Fetch<T>,如果你想自己动手。

要正确分页,您需要查询连接子表的父表并应用订单。一旦你有了,你可以翻页。但是,对于您加入的每个子项,将复制父行/信息。如果你还没有,我会建议一种方法,你只需要选择和分页子行。因此,如果这是一个UI,用户可以选择父记录,那么您应该显示一个子记录列表。这样做会降低查询逻辑的复杂性。

© www.soinside.com 2019 - 2024. All rights reserved.