最近使用Entity Framework做一个中型的项目,一张表含有千万条数据,并没有使用很复杂的查询,只是程序上使用了DTO进行帅选数据,且使用了分页,效果很不理想。经过跟踪sql,我发现很多简单的查询,都存在子查询,而子查询往往会影响到查询性能,在这里,我想问问大虾,除了自己写SQL语句,有没有更好的解决办法在Entity Framework基础上处理这个问题?

如图所示:

Entity Framework查询代码

        private async Task<QuotationDto[]> GetEntitys(int pageIndex, int pageSize)
{
var entitys = await Db.Quotations.Where(x => x.IsDelete == false && x.IsPass).OrderByDescending(x => x.CreatedDateTime).Select(x => new QuotationDto
{
ProductName = x.Name,
Id = x.Id,
Price = x.YouPrice,
UserName = x.UserName,
Address = x.ProvinceText
+ x.CityText
+ x.CountyText
+ x.TownText
+ x.VillageText,
RangeTime = EntityFunctions.DiffSeconds(x.CreatedDateTime, DateTime.Now)
}).Skip(pageIndex * pageSize).Take(pageSize).ToArrayAsync();
return entitys;
}

生成的SQL语句

最新文章

  1. 关于IONIC 报错 XX is not a function
  2. 深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)
  3. ACM 数独
  4. String.format(转)
  5. Calendar类中add/set/roll方法的区别
  6. ormlite性能对比
  7. Red Gate Software 软件推荐
  8. tomcat部署web项目的方式 转
  9. 关于取url或者微信中参数的js
  10. java 枚举类型和数据二进制等问题思考
  11. ConcurrentHashMap源码分析
  12. centos 创建用户组及用户
  13. 【Beta】 第四次Daily Scrum Meeting
  14. POJ1083 Moving Tables(模拟)
  15. MySQL的学习记录(3.31更新)
  16. Supervisor守护DotNet Core控制台程序
  17. Plctext 如何发送默认的模式
  18. redis 的简单使用
  19. 【iCore4 双核心板_uC/OS-II】例程十一:内存管理
  20. 【Unity】不能新建项目

热门文章

  1. 【前端】CSS
  2. tortoisesvn帮助手册
  3. Django Error: That port is already in use.
  4. Nginx常用配置整理
  5. javascript删除数组中的某个元素-----拓展Array 原型方法
  6. STL 容器(vector 和 list )
  7. jquery中ajax的相关事件汇总
  8. Rabbitmq消息队列(四) 发布订阅
  9. 基于vue实现百度离线地图
  10. [svc]caffe安装笔记-显卡购买