在 Entity Framework 4 中,延迟加载和使用 Load() 方法有什么区别?
编辑:我添加了两个“if”语句:
延迟加载:
var query = from c in context.Contacts select c;
foreach ( var contact in query ) {
if ( contact.ID == 5 )
Console.WriteLine( contact.Addresses.City );
}
加载()方法:
context.ContextOptions.LazyLoadingEnabled = false;
var query = from c in context.Contacts select c;
foreach ( var contact in query ) {
if ( contact.ID == 5 ) {
contact.Addresses.Load()
Console.WriteLine( contact.Addresses.City );
}
}
现在,有了这两个“如果”检查,为什么我应该优先选择另一个?
最佳答案
延迟加载
意味着只有在需要对象时才会加载,因此不会加载不必要的数据。
当您禁用延迟加载
时,您说您将通过调用 load 来加载自己。
http://en.wikipedia.org/wiki/Lazy_loading
Lazy Loading
默认情况下是禁用的,因此当您在第一行将其设置为 false
时,它不会执行任何操作。
当您调用 Load
时,您会将所有相关对象加载到该数据库(在这种情况下不需要,因此没有它也可以工作)
关于c# - 延迟加载和 Load() 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3850163/