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

EF的延迟加载LazyLoad

时间:2019-12-14 09:32:46      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:prope   plain   lazyload   避免   分析   包括   override   持久   业务   

延迟加载只对关联属性(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

标签:prope   plain   lazyload   避免   分析   包括   override   持久   业务   

原文地址:https://www.cnblogs.com/1016391912pm/p/12037869.html

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