Ленивая загрузка в Entity Framework - это явление по умолчанию, которое происходит для загрузки и доступа к связанным объектам. Тем не менее, страстная загрузка относится к практике принудительной загрузки всех этих отношений. Я столкнулся с вопросом о том, в какой ситуации интенсивная загрузка может быть более выгодной, чем ленивая загрузка. Запрашивая это, потому что очевидно, что ленивая загрузка более ресурсоемкая, и даже если мы используем метод ToList()
, мы все равно можем воспользоваться ленивым поведением загрузки. Тем не менее, я думал, что, может быть, ленивая загрузка увеличивает количество запросов к фактической базе данных, и, может быть, поэтому иногда разработчики используют метод Inlcude
для принудительной загрузки всех отношений. Например, при использовании автоустановок Visual Studio в MVC 5 метод Index, который автоматически создается в контроллере, всегда использует Eager Loading, и у меня всегда возникал вопрос, почему Microsoft использует Eager Loading по умолчанию в этом случае.
Я был бы признателен, если бы кто-то объяснил мне, в какой ситуации ожидаемая загрузка будет более выгодной, чем ленивая загрузка, и почему мы используем ее вообще, пока есть что-то более дружелюбное к ресурсу, как Lazy Loading.