Petapoco分页sql查看一对多

时间:2019-04-07 16:05:02

标签: c# sql one-to-many petapoco

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

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

最后: 就像我说的,X表1行可以带有50行或5或200行作为搜索结果。

我正在使用asp.net,数据库是SQL2014。我正在使用petapoco(orm)。

我不知道一对多视图分页。您有解决我问题的建议吗?

1 个答案:

答案 0 :(得分:0)

PetaPoco分页方法有一个重载,您可以在其中提供select和分页Page<T> Page<T>(long page, long itemsPerPage, Sql sqlCount, Sql sqlPage);的查询。这使您可以进行自定义分页。

PetaPoco中的分页本质上是一个查询,用于计算记录总数并查询以提取当前页面。如果您想自己滚动,可以使用T ExecuteScalar<T>List<T> Fetch<T>

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