使用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 ...
随机推荐
- haproxy实现负载均衡
一.安装tar zxvf haproxy-1.4.22.tar.gzcd haproxy-1.4.22make TARGET=linux26 PREFIX=/usr/local/haproxy ins ...
- Redis作者谈Redis应用场景(转)
毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象 ...
- 2. redis的数据类型
一. string类型 字符串类型是redis中最基本的数据类型,它能存储任何形式的内容,包含二进制数据,甚至是一张图片(二进制内容).一个字符串类型的值存储的最大容量是1GB 命令 (1)setnx ...
- 关于Linux中exec的一点心得
最近在学习linux操作系统中的相关知识,在使用execlp系统调用时,发现了些有趣的东西. 首先,关于execlp函数的用法: int execlp(const char *file, const ...
- SOA_环境安装系列3_Oracle Weblogic安装和环境搭建(案例)
2014-01-03 Created By BaoXinjian
- PLSQL_性能优化工具系列02_SQL Tuning Health-Check Script (SQLHC)
2014-08-23 Created By BaoXinjian
- ubuntu用终端卸载软件
我们需要知道我们要卸载的软件的名称,sudo apt-get autoremove --purge 之后输入软件名称,可以先输入前缀之后按tab,会自动补全. 现在不要急着回车,我们来讲解一下这个命令 ...
- 配置nginx下别名alias支持PHP fastcgi解析
1)参看如下连篇文章:Nginx设置alias实现虚拟目录 alias与root的用法区别http://down.chinaz.com/server/201111/1382_1.htmNginx下al ...
- jps命令
转载:http://blog.csdn.net/wanglha/article/details/40181701 ps -- JavaVirtual Machine Process Status To ...
- C++学习32 重载new和delete运算符
内存管理运算符 new.new[].delete 和 delete[] 也可以进行重载,其重载形式既可以是类的成员函数,也可以是全局函数.一般情况下,内建的内存管理运算符就够用了,只有在需要自己管理内 ...