EntityFramework关闭自动懒加载

懒加载(Lazy Loading)的概念在最后部分,前面就不占用篇幅了,进入正题。避免懒加载的主要原因是偏好手加载各个导航属性(Navigation Property)。

在EF4中懒加载是默认关闭的,在EF6中懒加载默认开启,用Student和Enrollment类举例,要关闭懒加载的方法有三种:


方法一:关闭特定的外键属性,将Enrollment类声明称public ICollection<Enrollment> Enrollment {get;set;}

方法二:关闭所有属性的懒加载,在DbContext中声明this.Configuration.LazyLoading = false; 如图


什么是懒加载(Lazy Loading)?

懒加载(Lazy Loading)跟贪婪加载(Eager Loading)是两种不同在ORM中加载数据的方式,通常用于one-to-one, one-to-many, many-to-many的情况下。拿Student和StudentDetail一对一关系的两个类举例,使用懒加载时,加载Student的不会同时会获取StudentDetail表中的数据,只有访问StudentDetail的属性的时候才会获取StudentDetail中的数据;使用贪婪加载的时候,在加载Student的时候就会加载所对应的StudentDetail,在有多对多关系的时候要尽量避免懒加载,因为会常常伴随不必要的数据加载,占用内存。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、简介 延迟加载就是我们真正使用某个对象的时候,这个对象才会被创建出来。而在hibernate中的意思就是只有我...
    yjaal阅读 667评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,874评论 18 399
  • 春光灿烂的上午,天气已经越来越热,放在阳台上晒的冬鞋要收入橱子。莲花想着把出门的鞋子也拿出来,可以准备下,还有几天...
    蓝莲花0阅读 306评论 0 0
  • 寒冬即将来临,而我们却不在一起。身处于不同城市的两人,只能向远处的你给予思念与关心。或许你早已把我的名字遗忘,或许...
    陈世俗陈阅读 318评论 0 0
  • 1.一天的情绪:心塞,烦躁,难过, 2.一天的进步:从昨晚和老公的小误会开始,负能量就无限上升!昨天下午老公带孩子...
    瑾_61e6阅读 166评论 0 2