Я читаю книгу Programming Entity Framework: DbContext
, и я только что прочитал главу о типах загрузки три данных:Entity сравнения база данных стратегия загрузки
- отложенной загрузки (по умолчанию)
- жадная загрузка
- Явная загрузка
Теперь я спрашиваю себя, какая загрузка данных лучше в какой ситуации. Конкретное сравнение было бы неплохо! Я их не нашел.
Например, я использую по умолчанию ленивую загрузку для модуля для клиента. Этот модуль имеет дело с торговыми представителями и подразумевающие эти связанные таблицы:
- Репс
- Reps_Zones
- Reps_Prerequisites
- Пользователи
- Reps_Languages
- т.д.
На модуле, Я использую все эти таблицы для отправки встреч (около 150 назначений на 50 повторений за раз), но он медленный. Будет ли использование другой стратегии загрузки действительно улучшить производительность?
Yeah Lazy loading не лучшее решение здесь. В принципе у вас проблема с N + 1. Означает, что каждый раз, когда вы обращаетесь к сущности, он запускает инструкцию select для загрузки только этого объекта. Представьте себе цикл через кучу объектов. Здесь много вопросов. Лучше загружать загрузку или я предполагаю, что явная загрузка, что вам понадобится, с помощью построителей запросов или linq. – Gohn67
См. Здесь о проблеме N + 1 с ленивой загрузкой в orm http://stackoverflow.com/questions/97197/what-is-the-n1-selects-problem – Gohn67