Термин отложенная загрузка обычно используется, когда речь идет об объектно-реляционных преобразователях. Если вы используете ADO.NET напрямую, вы всегда получаете активную загрузку (т. Е. Всегда загружает только то, что вы указали).
OR-mappers, такие как nHibernate, поддерживают возвращение прокси-объектов, которые «заполняются» правильными данными только тогда, когда вы обращаетесь к данным. Таким образом вы загружаете только те данные, которые действительно используете. Это полезная функция, когда вы указываете множество отношений между объектами, которые могут быть загружены из базы данных, вы не хотите, чтобы OR-mapper загружал все связанные объекты и объекты, связанные со связанными объектами, и так далее. Это может привести к загрузке всей вашей базы данных.
Эту проблему можно предотвратить также путем тщательного проектирования вашей объектной модели. (использование агрегатов и загрузка только агрегированных корней, как в дизайне, управляемом доменами, - это способ обойти это без использования ленивой загрузки).
Ленивая загрузка может привести к тому, что or mapper будет выполнять множество обращений к малой базе данных вместо того, чтобы получить все данные, которые вам нужны один раз. Это также может привести к проблемам с производительностью.