使用PetaPoco ORM 框架分页查询
通过在派生的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 框架分页查询的更多相关文章
- ThinkPhp框架分页查询和部分框架知识
		一.一个条件的查询数据 查询数据自然是先要显示出数据,然后根据条件进行查询数据 (1)显示出表的数据 这个方法我还是写在了HomeController.class控制器文件中 (1.1)写了一个方法s ... 
- 4.ORM框架的查询
		创建表对应关系代码如下: from flask import Flask, render_template from flask_sqlalchemy import SQLAlchemy app=Fl ... 
- orm框架与缓存的关系
		1.mybatis规定,一级缓存没必要bean类实现序列化,但二级缓存bean类必须实现序列化. 因为二级缓存是基于namespace的也就是基于接口的,二级缓存可以设置存储源,可以是redis或者m ... 
- .NET Core ORM 类库Petapoco中对分页Page添加Order By对查询的影响
		最近一直在使用Petapoco+Entity Framework Core结合开发一套系统. 使用EFCore进行Code First编码,使用PMC命令生成数据库表的信息. 使用Petapoco进行 ... 
- C#轻型ORM框架PetaPoco试水
		近端时间从推酷app上了解到C#轻微型的ORM框架--PetaPoco.从github Dapper 开源项目可以看到PetaPoco排第四 以下是网友根据官方介绍翻译,这里贴出来. PetaPoco ... 
- 轻量级ORM框架初探-Dapper与PetaPoco的基本使用
		一.EntityFramework EF是传统的ORM框架,也是一个比较重量级的ORM框架.这里仍然使用EF的原因在于为了突出轻量级ORM框架的性能,所谓有对比才有更优的选择. 1.1 准备一张数据库 ... 
- PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)
		我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db. 而且市面上的orm框架有很多,有重量级的Entity Framework,有 ... 
- 一行代码调用实现带字段选取+条件判断+排序+分页功能的增强ORM框架
		问题:3行代码 PDF.NET是一个开源的数据开发框架,它的特点是简单.轻量.快速,易上手,而且是一个注释完善的国产开发框架,受到不少朋友的欢迎,也在我们公司的项目中多次使用.但是,PDF.NET比起 ... 
- C# 性能优化 之 秒表 Stopwatch。       Dapper一个和petapoco差不多的轻量级ORM框架
		Sweet小马 小马同学的编程日记. C# 性能优化 之 秒表 Stopwatch. 生词解释:Diagnostics[,daɪəg'nɑstɪks] n.诊断学 using System.Diagn ... 
随机推荐
- ros的相关link
			http://markzhang.cn/blog/2014/08/19/ros-basic-setup/ http://blog.csdn.net/boliang319/article/details ... 
- golang的ssh例子
			package main import ( "github.com/dynport/gossh" "log" ) func MakeLogger(prefix ... 
- 在Myeclipse中移除项目对Hibernate的支持
			在Myeclipse中移除项目对Hibernate的支持 在使用Hibernate框架进行开发时可能会遇到配置错误或者需要删除Hibernate支持的情况.下面就说一下如何彻底移除项目的Hiberna ... 
- 验证视图状态 MAC 失败
			起因: 最近在做一个项目需要用到生成多个Html页,采用一下方法动态生成. WebRequest request = WebRequest.Create(pageurl); WebResponse r ... 
- Dell vsotro 14 3000系列从win10重装win7
			1. F2启动进入新的BIOS界面,首先Disable Secure Boot,然后把UEFI改为Legeacy模式,当然是改不回来的,不知道为什么: 2. 插入U盘(老毛桃+UEFI启动镜像): 3 ... 
- ubuntu ipv6网络电视(avplay)
			首先在ubuntu下安装好ipv6 (话说是已经装好了的,不过最好检查以下) 网上有很多资源,我不写了. 测试一下 :ping ipv6.scau.edu.cn 另外,关于ipv6 网络播放器很多人推 ... 
- 原生视觉差滚动---js+css;
			<!doctype html> <html> <head> <meta http-equiv="Content-Type" content ... 
- 四层LB和七层LB
			总结: 基于MAC地址玩的是二层(虚拟MAC地址接收请求,然后再分配到真实的MAC地址), 基于IP地址玩的是三层(虚拟IP地址接收请求,然后再分配到真实的IP地址), 基于IP地 ... 
- [Linux] Netstat 执行过慢,占CPU100%,原因查找
			一.缘由: 待续 二.解决办法: netstat -tlnp netstat -nap|grep pid ss |grep pid ss -s sar -u 1 10 strace -FfT -o n ... 
- linux 标准输入输出
			文件描述符是一个简单的正整数,用以标明每一个被进程所打开的文件和socket.最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出(stdout)和标准错误(stderr)对应 ... 
