当前位置: 首页 > news >正文

自己怎么做网站购买空间东莞企业网站排名优化

自己怎么做网站购买空间,东莞企业网站排名优化,域名未做运行网站解析,十堰市网站建设假设你有一个父表(例如:汽车),其关联一个子表,例如轮子(一对多)。现在你想对于所有的父表汽车,遍历所有汽车,然后打印出来所有轮子的信息。默认的做法将是: S…

假设你有一个父表(例如:汽车),其关联一个子表,例如轮子(一对多)。现在你想对于所有的父表汽车,遍历所有汽车,然后打印出来所有轮子的信息。默认的做法将是:

SELECT CarId FROM Cars;

然后对于每个汽车:

SELECT * FROM Wheel WHERE CarId = ?

这会SELECT 2个表一共N(主表的行数)+1(父表)次,故称为SELECT N+1问题。

考察下面的代码。假设ProvinceMeeting是一个会议表,MeetSign是另外一个会议签到表,ProvinceMeeting和MeetSign是一对多的关系:

不推荐的写法

                        var Ids = container.ProvinceMeeting.Select(f => f.Id).ToList();var SignEntities = container.MeetingSign.ToList();foreach (var Id in Ids){var sign = container.MeetingSign.Where(f => f.MeetingId == Id);}

每次循环都会连接数据库,执行一条sql语句,select N + 1问题,很消耗性能。

改善后的写法:

                       //这是我曾经的写法,先遍历获取主表和所有的子表数据存储在数组中,然后再foreach循环查询取出每个主表对应的子表信息, var Entities = container.ProvinceMeeting.ToList();var SignEntities = container.MeetingSign.ToList();foreach (var item in Entities){var sign = SignEntities.Where(f => f.MeetingId == item.Id);}

我们知道foreach会强制LINQ执行,于是,我们可以想象这也是一个SELECT N+1问题的例子:先获得所有ProvinceMeeting(SELECT * FROM ProvinceMeeting),然后遍历,再去SELECT 表MeetingSign,共SELECT N+1次。(当然这里我把数据都啦取出来,储存在内存中,进行操作相当也查询了两次,但随后我还要遍历循环操作数组)。

 

解决方法:使用一个匿名对象作为中间表格,预先将两个表join到一起

最佳写法:

var  results = container.ProvinceMeeting.Select(f => new { f.Id, son = f.MeetingSign });

我们对结果添加监听,执行效果如下:

主表和子表对应的关联数据,绑定在了一起,不止代码简单,执行效率也高出了不少!

转载于:https://www.cnblogs.com/likui-bookHouse/p/9619960.html

http://www.lbrq.cn/news/2567287.html

相关文章:

  • 网站轮播图教程优化营商环境的意义
  • 网站点击赚钱怎么做跨国网站浏览器
  • 免费个人logo设计seo 最新
  • 怎么自己做网站qq域名购买哪个网站好
  • 成都网站营销seo电话快排seo软件
  • 极速在线网站免费个人网站怎么建立
  • 网站平台建设合作协议友情链接官网
  • 阿里巴巴外贸批发网seo教程自学
  • 没技术怎么做网站百度竞价排名商业模式
  • 烟台网站制作公司百度做广告怎么收费
  • 网页游戏网站排名前10名长沙做网站的公司有哪些
  • 饰品公司网站建设策划书网站关键词排名优化软件
  • 没有网站可以做cpa广告么潍坊今日头条新闻最新
  • 微网站建设资讯百度推广方式
  • 东莞做棋牌网站建设网站的seo如何优化
  • 网站积分解决方案网址大全名称
  • 上海新闻网首页优化服务公司
  • win7 iis 新建网站福州网seo
  • 做产品代理上哪个网站好希爱力
  • 数据推广是干什么的卢镇seo网站优化排名
  • 南昌哪里可以做电商网站百度广告推广平台
  • 智能网站开发工具seo和sem
  • 网站怎么添加百度商桥电商培训视频教程
  • 可以做请柬的网站互联网推广平台有哪些
  • 网站建设背景怎么写海外推广解决方案
  • 服务器如何做网站南宁市优化网站公司
  • iis怎么查看网站的域名巨量算数数据分析入口
  • wordpress防镜像seo关键词优化要多少钱
  • seo站内站怎么做手机百度网页版
  • 如何建设国际网站首页数据分析师报考官网
  • C++ 模板初阶
  • C# 中抽象类、密封类、静态类和接口的区别
  • 八股取士--docker
  • 鸿蒙智选携手IAM进驻长隆熊猫村,为国宝打造智慧健康呼吸新空间
  • Android使用MediaProjectionManager获取游戏画面和投屏
  • 下载一个JeecgBoot-master项目 导入idea需要什么操作启动项目