EF的延迟加载LazyLoad
Posted 1016391912pm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF的延迟加载LazyLoad相关的知识,希望对你有一定的参考价值。
延迟加载只对关联属性(Navigation Property)有用,普通属性没有这个东西。
延迟加载是一条一条的读取属性,调用一次,读取一次。
条件:
context.Configuration.ProxyCreationEnabled = true;(默认为true)
context.Configuration.LazyLoadingEnabled = true;(默认为true)
POCO类为public,导航属性要加virtual修饰符。
注:POCO---Plain Old CLR Object,指那些不包括INSERT、DEL等数据持久化操作及任何业务逻辑的原始类。
原理分析:
EF动态的生成了实体类的子类,然后override了virtual属性(所以不加virtual的话就得不到属性值)
优点:避免一次性加载所有数据,提高了加载的速度。
缺点:用一次加载一次,提高了数据库服务器的压力。
所以,当数据库的数据越多,我们用到的数据越少时,推荐使用延迟加载,反之使用预先加载。
以上是关于EF的延迟加载LazyLoad的主要内容,如果未能解决你的问题,请参考以下文章
jQuery延迟加载(懒加载)插件 jquery.lazyload.js