实体框架中的延迟加载是加载和访问相关实体时发生的默认现象。然而,急切的加载被称为强制加载所有这些关系的做法。我遇到了什么情况下急切加载比延迟加载更有利的问题。提出这个问题,因为很明显,延迟加载对资源更友好,即使我们使用方法,我们仍然可以利用延迟加载行为。然而,我想可能延迟加载会增加对实际数据库的请求数量,也许这就是为什么有时开发人员使用Inlcude
方法强制加载所有关系。例如,当在MVC 5中使用Visual Studio自动脚手架时,在控制器中自动创建的Index方法总是使用Eager Loading,并且在这种情况下,我总是有一个问题,为什么微软默认使用Eager Loading。延迟加载vs预先加载
如果有人向我解释,在什么情况下,加载比延迟加载更有利,我们为什么要使用它,而对于更加资源友好的Lazy Loading来说,我将不胜感激。
想象一下,您的数据库上下文将被丢弃并且不再发生延迟加载的情况。然后急切的加载是有益的。 – Transcendent
我看到很多项目因为性能问题而失败,这是由于“N + 1选择”问题导致的,当执行延迟加载时会出现更快的性能问题,所以一定要看看这个问题 –