懒惰加载中的混乱,延迟加载。它们是相同还是不同?什么是渴望加载。任何人都可以通过示例解释我。
答案 0 :(得分:3)
这些术语在不同的背景下被抛出相当多,前两个经常互换使用 - 这是我的看法:
延迟加载 - 通常用于表示按需导航属性(例如,thisOrder.Customer只会在您访问时加载客户)。
延迟加载 - 您可以设置常规属性(例如Customer.Notes)以延迟加载(在设计器中)。然后它不会加载Customer对象,而是按照与延迟加载大致相同的方式按需加载。
急切加载 - 如果您确定需要导航属性(甚至是延迟属性),您可以告诉LINQ to SQL使用DataContext的LoadOptions同时获取它们。通过生成连接,这将从第一个查询(SELECT N + 1问题)中返回的每个实体的1个查询和1个以上查询切换。
答案 1 :(得分:1)
我不知道你是否找到了你的答案但是,我也希望看到它们之间的区别,我发现了Nikolaos Kantzelis关于实体框架4中的延迟加载,急切加载,显式加载的一篇不错的小文章:
答案 2 :(得分:0)
https://github.com/jakubmaguza/Lazy-vs-Deferred-vs-Normal
在这里你可以找到差异。只需从文件中下载或复制粘贴代码,然后按开始。你会看到这样的输出:
退役申请也会有所帮助。