Junior — Middle
Explique como é que a carga de dados relacionados é feita no Entity Framework e em que se diferencia da carga preguiçosa.
sobes.tech IA
Resposta da IA
В Entity Framework подгрузка связанных данных может осуществляться двумя основными способами:
- Жадная загрузка (Eager Loading) — связанные данные загружаются сразу вместе с основными при выполнении запроса. Для этого используется метод
Include.
var orders = context.Orders.Include(o => o.Customer).ToList();
В этом примере вместе с заказами загружаются связанные данные о клиентах.
- Ленивая загрузка (Lazy Loading) — связанные данные загружаются только при первом обращении к ним в коде, то есть отложенно. Для этого требуется настройка прокси и виртуальных навигационных свойств.
var order = context.Orders.First();
var customerName = order.Customer.Name; // Здесь происходит отдельный запрос к базе
Отличия:
- Жадная загрузка выполняет все необходимые запросы сразу, что уменьшает количество обращений к базе, но может загрузить лишние данные.
- Ленивая загрузка экономит ресурсы, загружая данные по мере необходимости, но может привести к множеству отдельных запросов (проблема N+1).
Выбор подхода зависит от сценария и требований к производительности.