自从 EF 4.1 上线以来,我一直在使用 EF CodeFirst,那是一年多以前的事了,现在使用它感觉很舒服。我习惯于自定义实体验证器,重写 .SaveChanges() 来修改它的一些行为以及一些重要的概念,比如映射到非表数据库对象。但是 EF 的这一部分对我来说仍然是多云的:context.Configuration.LazyLoadingEnabled = false;
。
我了解基础知识,一旦调用 linq 查询,它们就会被扔到数据库中,如果我没有明确指定它,将不会加载依赖集合,yadda yadda yadda。我想了解的是:
- 在什么情况下我应该禁用延迟加载?为什么?
- 禁用它的实际好处和/或缺点是什么?
- 欢迎任何额外的澄清。