Ленивая загрузка, отложенная загрузка, полная загрузка LINQ - PullRequest
1 голос
/ 15 января 2011

путаница в отложенной загрузке, отложенной загрузке. Они одинаковы или отличаются?

Ответы [ 3 ]

3 голосов
/ 16 января 2011

Эти термины довольно часто встречаются в разных контекстах, и первые два часто используются взаимозаменяемо - вот мое мнение:

Ленивая загрузка - Часто используется для обозначения свойства навигациипо требованию (например, thisOrder.Customer будет загружать клиента только при обращении к нему).

Отложенная загрузка - Вы можете установить обычное свойство (например, Customer.Notes), чтобы отложить загрузку (в конструктор).Затем он не загружается с объектом Customer, но загружается по требованию во многом так же, как и отложенная загрузка.

Стремительная загрузка - Если вы знаете, что вам определенно нужны свойства навигации (илидаже отложенные свойства) вы можете указать LINQ to SQL, чтобы получить их одновременно, используя LoadOptions DataContext.Это переключится с того, что будет 1 запросом, а затем 1+ запросом на сущность, возвращенную в первом запросе (проблема SELECT N + 1), сгенерировав соединение.

1 голос
/ 17 февраля 2013

Я не знаю, нашли ли вы свой ответ, но я также искал разницу между ними, и я нашел симпатичную небольшую статью Николаоса Канцелиса о отложенной загрузке, активной загрузке, явной загрузке в Entity Framework 4:

http://weblogs.asp.net/dotnetstories/archive/2011/03/10/lazy-loading-eager-loading-explicit-loading-in-entity-framework-4.aspx

0 голосов
/ 04 октября 2017

https://github.com/jakubmaguza/Lazy-vs-Deferred-vs-Normal

Здесь вы можете найти различия.Просто скачайте или скопируйте код из файла и нажмите «Пуск».Вы увидите вывод, подобный следующему: enter image description here

Приложение отладки также будет полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...