码迷,mamicode.com
首页 > 其他好文 > 详细

Entity Framework查询生成大量的子查询,如何避免?求救

时间:2015-06-08 16:56:54      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

最近使用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语句

 

技术分享

Entity Framework查询生成大量的子查询,如何避免?求救

标签:

原文地址:http://www.cnblogs.com/david1989/p/4561229.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!