通过在派生的Repository中调用GetPagingEntities方法来获取分页数据,并返回由PagingDataSet<T>封装分页集合,例如:

Public PagingDataSet<Student> GetDataPage(int? stuid,int pageIndex, int pageSize )
{
return GetPagingEntities(pageSize,pageIndex,CachingExpirationType.ObjectCollection,()=>{
StringBulider cacheKey = new StringBulider(CacheSetting.GetListCacheKeyPrefix(CacheVersionType.AreaVersion,"stuid",stuid)); if(stuid.HasValue&& stuid.Value>)
{
cacheKey.AppendFormat("stuid-{0}:", stuid.Value); return stuid.ToString();
},
()=>{ var sql = PetaPoco.Sql.Builder;
if(stuid.HasValue&& && stuid.Value>)
sql.Where("stuid =@0", stuid.Value);
return sql;
}
});
}

对于查询分为主流查询及非主流查询:

1)         例如:博客文章列表属于主流查询,博客文章排行属于非主流查询;

2)         主流查询最大返回记录数限制为PrimaryMaxRecords;

3)         非主流查询通常不需要查看太多数据,最大返回记录数限制为SecondaryMaxRecords;

3.         对于查询条件较多的情况可以定义Query类进行封装;

Public class SampleEntityQuery{

  public long? userid=null;
public SortBySampleEntity sort=SortBySampleEntity.DataCreated; public enum SortBySampleEntity{
DateCreate,
HitTimes
}
}

4.         查询语句需要使用PetaPoco.Sql进行组装;

5.         分页查询结果使用只读集合类型PagingDataSet<T>进行封装,PagingDataSet<T>中含当前集合的PageIndex、PageSize与TotalRecords信息;

使用PetaPoco ORM 框架分页查询的更多相关文章

  1. ThinkPhp框架分页查询和部分框架知识

    一.一个条件的查询数据 查询数据自然是先要显示出数据,然后根据条件进行查询数据 (1)显示出表的数据 这个方法我还是写在了HomeController.class控制器文件中 (1.1)写了一个方法s ...

  2. 4.ORM框架的查询

    创建表对应关系代码如下: from flask import Flask, render_template from flask_sqlalchemy import SQLAlchemy app=Fl ...

  3. orm框架与缓存的关系

    1.mybatis规定,一级缓存没必要bean类实现序列化,但二级缓存bean类必须实现序列化. 因为二级缓存是基于namespace的也就是基于接口的,二级缓存可以设置存储源,可以是redis或者m ...

  4. .NET Core ORM 类库Petapoco中对分页Page添加Order By对查询的影响

    最近一直在使用Petapoco+Entity Framework Core结合开发一套系统. 使用EFCore进行Code First编码,使用PMC命令生成数据库表的信息. 使用Petapoco进行 ...

  5. C#轻型ORM框架PetaPoco试水

    近端时间从推酷app上了解到C#轻微型的ORM框架--PetaPoco.从github Dapper 开源项目可以看到PetaPoco排第四 以下是网友根据官方介绍翻译,这里贴出来. PetaPoco ...

  6. 轻量级ORM框架初探-Dapper与PetaPoco的基本使用

    一.EntityFramework EF是传统的ORM框架,也是一个比较重量级的ORM框架.这里仍然使用EF的原因在于为了突出轻量级ORM框架的性能,所谓有对比才有更优的选择. 1.1 准备一张数据库 ...

  7. PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)

    我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db. 而且市面上的orm框架有很多,有重量级的Entity Framework,有 ...

  8. 一行代码调用实现带字段选取+条件判断+排序+分页功能的增强ORM框架

    问题:3行代码 PDF.NET是一个开源的数据开发框架,它的特点是简单.轻量.快速,易上手,而且是一个注释完善的国产开发框架,受到不少朋友的欢迎,也在我们公司的项目中多次使用.但是,PDF.NET比起 ...

  9. C# 性能优化 之 秒表 Stopwatch。 Dapper一个和petapoco差不多的轻量级ORM框架

    Sweet小马 小马同学的编程日记. C# 性能优化 之 秒表 Stopwatch. 生词解释:Diagnostics[,daɪəg'nɑstɪks] n.诊断学 using System.Diagn ...

随机推荐

  1. U-boot的环境变量: bootcmd 和bootargs

    U-boot的环境变量: bootcmd 和bootargs   u-bootcmdbootcmd是uboot自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置, ...

  2. ASP.NET ViewState详解

    ASP.NET ViewState详解[转载] 作者:Infinities Loop 概述 ViewState是一个被误解很深的动物了.我希望通过此文章来澄清人们对ViewState的一些错误认识.为 ...

  3. 一.OSI与TCP

    一. TCP/IP的由来 OSI参考模型由来 计算机网络产生的最初阶段,每个计算机厂商都实现了自己的一套计算机网络体系结构;异构的网络之间无法进行通信.因此,ISO委员会推出了一种用于开放系统互联的网 ...

  4. Report_客制化报表输出Excel后去0问题(案例)

    2014-02-01 Created By BaoXinjian

  5. SQL数据插入:将截断字符串或二进制数据

    将图片等较多数据保存到数据库的过程中会遇到: -- :: EL图片保存到数据库出错 条码:DE1132 异常原因:System.Data.SqlClient.SqlException: 将截断字符串或 ...

  6. DEV--GerdView控件

    1.遍历 ; i < gridView1.RowCount; i++) { ; j < gridView1.Columns.Count; j++) { object val = gridV ...

  7. Hololens开发笔记之使用Unity开发一个简单的应用

    一.Hololens概述 Hololens有以下特性 1.空间映射借助微软特殊定制的全息处理单元(HPU),HoloLens 实现了对周边环境的快速扫描和空间匹配.这保证了 HoloLens能够准确地 ...

  8. java虚拟机参数设置

    -Xms8000M  初始化的堆大小   -Xmx8000M  堆的最大值 -XX:+HeapDumpOnOutOfMemoryError 堆溢出时Dump出当前内存堆转储快照以便事后分析 -XX:P ...

  9. jsp页面编译成Servlet类文件

    package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.js ...

  10. Python补充03 Python内置函数清单

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明. Python内置(built-in)函数随着python解释器的运行而创建.在Pytho ...