zoukankan      html  css  js  c++  java
  • Entity Framework查询生成大量的子查询,如何避免?求救

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

  • 相关阅读:
    express如何使用cors插件、body-parser插件
    如何让xshell关闭后依然运行node项目
    nuxt命令和部署
    Python—函数的名称空间
    Python—生成器
    Python—闭包
    Python入门-字符串常用方法
    Python入门-函数
    Python入门-文件操作
    Python入门-三级菜单
  • 原文地址:https://www.cnblogs.com/david1989/p/4561229.html
Copyright © 2011-2022 走看看