熬了个夜,发现EF的count效率问题

[软件开发] 季雨林 2019/11/3 1:53:56

一直比较喜欢用偷懒的方式写代码,因此我的数据库访问层往往也比较懒,直接用了原生的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 文章的更新编辑依此链接为准。欢迎关注源站原创文章!

评论

暂无评论!

发表评论:

用于接收作者回复信息
点击更换验证码 - openGPS提示