Ленивая загрузка, Задержанная Загрузка и Нетерпеливая Загрузка в платформе Объекта

Каковы различия между этими 3 типами загрузки? Кто-то может объяснить с примером? Различные ресурсы онлайн используют различные определения, вызывающие больше беспорядка, чем необходимый.

10
задан DotnetDude 12 July 2010 в 17:02
поделиться

2 ответа

Ленивая загрузка и отложенная загрузка в значительной степени синонимы (AFAIK, пожалуйста, поправьте меня, если я ошибаюсь). Большая разница между нетерпеливым и ленивым. Eager будет происходить заранее, Lazy выполняется только «по мере необходимости», а выполнение будет происходить на уровне DB - давайте возьмем простой оператор JOIN в качестве примера

var people = (from p in people SELECT p).ToList();
var jobs = (from j in jobs SELECT j).ToList();

var peopleAndJobs = (from p in people JOIN j on j.personId equals p.personId SELECT p).ToList()

Это пример активной загрузки. Мы получаем ВСЕХ людей, ВСЕ рабочие места и делаем объединение в память. Не очень умно (обычно). Вот как это выглядит Lazy-style.

var people = (from p in people SELECT p);
var jobs = (from j in jobs SELECT j);

var peopleAndJobs = (from p in people JOIN j on j.personId equals p.personId SELECT p).ToList()

При этом создается IQueryable как для людей, так и для работы (IQueryable ленив), а соединение происходит в базе данных. Это экономит сетевую активность и обычно работает быстрее, поскольку БД оптимизирована для соединений и т. Д.

Если мы явно не скажем: «Мне нужны эти данные!» (путем ToListing, повторения и т. д.) это лениво. Есть еще несколько причуд, но это должен быть достойный учебник.

9
ответ дан 4 December 2019 в 00:22
поделиться

Ленивая / отложенная загрузка : Ленивая загрузка и отложенная загрузка - это одно и то же. Отношение загружается при первом обращении к нему. Идея в том, что если данные не требуются, их не следует загружать.

Активная загрузка : Отношение извлекается вместе с родительским объектом. Это может быть более эффективным при загрузке данных, но будет загружать данные независимо от того, какие данные используются / не используются.

3
ответ дан 4 December 2019 в 00:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: