c# – 延迟加载和加载()之间的区别是什么

在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 );
}

Load()方法:

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 );
     }
}

现在,进行这两个’if’检查,为什么我要先放一个呢?

最佳答案 延迟加载意味着只有在需要对象时才会发生加载,因此不会加载不必要的数据.

当您禁用延迟加载时,您说您将通过调用load来加载自己.

http://en.wikipedia.org/wiki/Lazy_loading

默认情况下禁用延迟加载,因此当您在第一行中将其设置为false时,它不会执行任何操作.

当您调用Load时,您将所有相关对象加载到该数据库(在这种情况下不需要它,这使得它在没有它的情况下工作)

点赞