gpt4 book ai didi

c# - 隐式延迟加载与显式延迟加载

转载 作者:太空狗 更新时间:2023-10-29 17:50:06 25 4
gpt4 key购买 nike

我一直在阅读 Entity Framework,人们为为什么没有隐式延迟加载或其他东西而哭泣。基本上我一直在搜索有关延迟加载的内容,现在我知道它是什么了:它是一种设计模式,允许我们在真正需要时加载对象。

但是显式延迟加载和隐式延迟加载有什么区别。

提前致谢...

最佳答案

如果你例如有一个实体“OrderRow”和另一个实体“Order”,OrderRow 上将有一个导航属性指向它所属的订单。

目前 Entity Framework 仅支持Explicit Lazy Load,这意味着如果您已经检索了一些 OrderRow 并想要检查订单上的某些内容,您需要:

// or is an OrderRow
if(!or.Order.IsLoaded)
or.Order.Load()

or.Order.Cancel();

但是,如果您有隐式延迟加载,则不需要 IsLoaded 检查,它会自动完成,您可以直接执行 or.Order.Cancel()如果需要,订单将自动加载。这就是 linq-to-sql 的工作方式,它可以节省一些输入和一些出错的风险。另一方面,它使得何时以及如何执行数据库访问变得不太清楚。使用隐式加载很容易编写低效的代码,使从表中获取的每一行都进行一次数据库往返。

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

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