gpt4 book ai didi

c# - 延迟加载与急切加载

转载 作者:IT王子 更新时间:2023-10-29 03:45:18 25 4
gpt4 key购买 nike

在什么情况下预加载比延迟加载更有益?

Entity Framework 中的延迟加载是加载和访问相关实体时发生的默认现象。然而,预加载是指强制加载所有这些关系的做法。

我问这个,因为很明显延迟加载对资源更友好,即使我们使用 ToList() 方法,我们仍然可以利用延迟加载行为.

但是,我认为延迟加载可能会增加对实际数据库的请求数量,也许这就是为什么有时开发人员使用 Inlcude 方法强制加载所有关系的原因。

例如,在MVC 5中使用Visual Studio自动脚手架时,在 Controller 中自动创建的Index方法总是使用Eager Loading,而我一直有疑问,为什么微软在这种情况下默认使用Eager Loading。

如果有人向我解释在什么情况下预加载比延迟加载更有益,以及为什么我们要使用它,而有比延迟加载更资源友好的东西,我将不胜感激?

最佳答案

我觉得把关系这样分类比较好

何时使用预先加载

  1. 在一对多关系的“一侧”中,您肯定会在与主要实体的任何地方使用。就像文章的用户属性。产品的类别属性。
  2. 通常当关系不是太多时,预加载将是减少服务器上进一步查询的好习惯。

何时使用延迟加载

  1. 几乎在一对多关系的每个“集合端”。例如用户文章或某个类别的产品
  2. 您清楚地知道您不会立即需要特性。

注意:如Transcendent所说,延迟加载可能存在处理问题。

关于c# - 延迟加载与急切加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31366236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com