Entity Framework查询生成大量的子查询,如何避免?求救
2024-10-03 08:30:08
最近使用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语句
最新文章
- 关于IONIC 报错 XX is not a function
- 深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)
- ACM 数独
- String.format(转)
- Calendar类中add/set/roll方法的区别
- ormlite性能对比
- Red Gate Software 软件推荐
- tomcat部署web项目的方式 转
- 关于取url或者微信中参数的js
- java 枚举类型和数据二进制等问题思考
- ConcurrentHashMap源码分析
- centos 创建用户组及用户
- 【Beta】 第四次Daily Scrum Meeting
- POJ1083 Moving Tables(模拟)
- MySQL的学习记录(3.31更新)
- Supervisor守护DotNet Core控制台程序
- Plctext 如何发送默认的模式
- redis 的简单使用
- 【iCore4 双核心板_uC/OS-II】例程十一:内存管理
- 【Unity】不能新建项目