一直比较喜欢用偷懒的方式写代码,因此我的数据库访问层往往也比较懒,直接用了原生的EF数据库查询,套用的分页组件居然给我拖慢了效率
using (LinkCore.LinkEntities DB = new LinkCore.LinkEntities())
{
var list = DB.t_LinkClickLog.AsQueryable();
list = list.Where(m => m.Code == code);
list = list.OrderByDescending(m => m.sys_AddDateTime);
var count = list.Count();
if (count == 0)
return View();
resultList = new PagingHelper<LinkCore.t_LinkClickLog>(pageSize, list);
resultList.PageIndex = pageIndex;//指定当前页
//到分页类的方法中执行,最终生成的sql语句查询了整个表,全表读出效率底下
var resList = resultList.GetPagingData().ToList();
//直接在当前方法执行分页,最终生成的sql语句带着分页,只返回当前页
var resList = list.Skip((resultList.PageIndex - 1) * resultList.PageSize).Take(resultList.PageSize).ToList();
}
原文地址:
https://www.opengps.cn/Blog/View.aspx?id=524
文章的更新编辑依此链接为准。欢迎关注源站原创文章!