В EF 4 ленивая загрузка выполняется по умолчанию, если вы используете генерацию кода или прокси. «Чистые» POCO (не путать с так называемыми POCO-прокси) не могут выполнять ленивую загрузку, если вы не кодируете ее. Более подробная информация в этом сообщении .
В EF 1 нет отложенной загрузки, поэтому вы должны использовать явную загрузку, активную загрузку или проекцию.
Явная загрузка означает вызов Load()
. Обычно вы тестируете IsLoaded
перед вызовом Load()
.
Стремительная загрузка приводит к тому, что свойство загружается вместе с самой сущностью. Это позволяет избежать повторного запроса к БД.
Проекция заставляет EF генерировать SQL только для необходимых свойств оптимизированным способом.
Хотя отложенная загрузка по умолчанию включена в EF 4, она относительно неэффективна в любом ORM (вызывает много запросов к БД). Вы все еще можете использовать проекцию или активную загрузку вместо этого.