我正在尝试通过分页为我的搜索结果创建一个搜索页面。
问题:我有一个表X.这个表在我的视图(sql)中有20个一对多的表关系。对于我的表中的1行,X在我的视图(sql)中等于200有时是100,50行。我需要将所有这些结果放在一行中。
最后:就像我说的X表1行可以从视图中获得50行或5或200行作为搜索结果。
我使用的是asp.net,我的数据库是SQL 2014.I我正在使用petapoco(orm)。
我不知道一对多查看分页。你有建议解决我的问题吗?
PetaPoco分页方法有一个过载,你可以提供选择和分页Page<T> Page<T>(long page, long itemsPerPage, Sql sqlCount, Sql sqlPage);
的查询。这允许您进行自定义分页。
PetaPoco中的分页本质上是一个查询来计算记录总数和查询来拉取当前页面。你可以用T ExecuteScalar<T>
和List<T> Fetch<T>
,如果你想自己动手。
要正确分页,您需要查询连接子表的父表并应用订单。一旦你有了,你可以翻页。但是,对于您加入的每个子项,将复制父行/信息。如果你还没有,我会建议一种方法,你只需要选择和分页子行。因此,如果这是一个UI,用户可以选择父记录,那么您应该显示一个子记录列表。这样做会降低查询逻辑的复杂性。