在什么情况下,渴望加载比延迟加载更有益?
实体框架中的延迟加载是加载和访问相关实体时发生的默认现象。然而,急加载是指力加载的实践中所有这些关系。
我之所以问这个问题,是因为很明显,延迟加载更具资源友好性,而且即使我们使用 ToList()
方法,我们仍然可以利用延迟加载行为。
但是,我认为延迟加载可能会增加对实际数据库的请求数量,这也许就是为什么有时开发人员使用 Inlcude
方法强制加载所有关系。
例如,当在 MVC 5中使用 Visual Studio 自动脚手架时,在控制器中自动创建的 Index 方法总是使用 Eager Loding,我一直有个问题,为什么微软在这种情况下使用 Eager Loding 默认值。
如果有人能向我解释在什么情况下渴望加载比懒惰加载更有益,我将非常感激,而且我们为什么要使用它,而懒惰加载是一种更加资源友好的加载方式呢?