Поэтому мне несколько раз советовали отключить ленивую загрузку при создании приложения с помощью вышеуказанных фреймворков и что ToList() заставит запросы в моем репозитории выполнить. Мне сказали, что я избегу некоторых "ловушек", с которыми я мог бы столкнуться, если бы использовал AsEnumerable().
Однако в недавнем вопросе я включил кучу ToList() s в свои примеры кода и поразил ряд людей, которые заверили меня, что IEnumerable намного лучше вернуться.
Я, по меньшей мере, полностью смущен.
Должен ли я возвращать IEnumerable в моем репозитории, а затем преобразовывать их в список в моих моделях просмотра? Должен ли я использовать ToList() прямо в моем репозитории, как раньше? Предполагаю ли я оставить отложенное исполнение включенным в первую очередь?
Джимми Рождество...
Edit: Итак, если я отключил ленивую загрузку, основываясь на более ранних советах, должен ли я снова включить ее, вернуть IEnumerable/IQueryable из моего репозитория и преобразовать коллекцию в список в моих моделях просмотра, если это необходимо?
Один из нижеприведенных ответов ассоциирует IEnumerable с нетерпеливым исполнением, в то время как у меня создалось впечатление, что только ToList() заставит немедленное выполнение запроса.
Я наткнулся на этот, этот и this, которые содержат интересную дискуссию, связанную с этим вопросом.