【C#】延迟加载
来源:互联网 发布:北航 英语专业的 知乎 编辑:程序博客网 时间:2024/06/04 18:25
前言
看C#三层实例的时候,听到老师讲了一个延迟加载的概念,但是他没有明说,我查阅了相关资料,大致懂了延迟加载的含义。
什么是延迟加载?
延迟加载(lazy load)是(也称为懒加载)Hibernate3关联关系对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。可以简单理解为,只有在使用的时候,才会发出sql语句进行查询。
作用
通过延迟加载的定义我们不难发现,延迟加载的作用就是为了提高我们代码运行的效率,在实例化一个类时,如果用的到类中的方法,再去加载,如果用不到,就直接跳过,这样,节省了计算机的运算时间,避免了空间的浪费。
有效期
延迟加载的有效期是在session打开的情况下,当session关闭后,会报异常。当调用load方法加载对象时,返回代理对象,等到真正用到对象的内容时才发出sql语句。
实例
Login.Model.UserInfo user = null;while (reader.Read()){ if (user==null) { user = new Login.Model.UserInfo(); } user.ID = reader.GetInt32(0); user.UserName = reader.GetString(1); user.Password = reader.GetString(2); if(!reader.IsDBNull(3)) { user.Email = reader.GetString(3); }}视频中,就是这段代码出现了延迟加载,那先在我们分析一下,为什么说它用了延迟加载。
while(reader.Read())后面有一个判断,如果user==null,那么实例化UserInfo,延迟加载了UserInfo的实例化。
应用场景
当创建一个对象的子对象开销比较大时,而且有可能在程序中用不到这个子对象,那么可以考虑用延迟加载的方式来创建子对象。另外一种情况就是当程序一启动时,需要创建多个对象,但仅有几个对象需要立即使用,这样就可以将一些不必要的初始化工作延迟到使用时,这样可以非常有效的提高程序的启动速度。
2 0
- 【C#】延迟加载
- 延迟加载
- 延迟加载
- 延迟加载
- 延迟加载
- 延迟加载
- 延迟加载
- 延迟加载
- 延迟加载
- 延迟加载
- 延迟加载
- 延迟加载
- 延迟加载--懒加载
- 懒加载(延迟加载)
- Hibernate延迟加载之属性延迟加载
- Hibernate中的延迟加载
- Hibernate延迟加载机制
- Hibernate延迟加载机制
- android的命令行
- TCP慢启动、拥塞避免、快速重传、快速回复
- hdoj5611Baby Ming and phone number
- 两个事物 update同一张表出现的死锁问题
- Cpu Cache对程序性能分析
- 【C#】延迟加载
- hdu 1037 Keep on Truckin'
- 数据库的创建
- Mesos入门介绍
- HDU 5613 Baby Ming and Binary image(扫雷地图的还原)
- SQL Server中NULL的正确使用与空间占用
- CefSharp整合到C#中
- Eval与Bind的区别
- hdu 1013 Digital Roots(简单题)