ASP.NET MVC2 с Entity Framework 4 - AsEnumerable () или ToList () в репозитории?

Итак, мне несколько раз советовали отключить отложенную загрузку при создании приложения с указанными выше фреймворками, и что ToList () заставит запросы в моем репозитории выполняться. Мне сказали, что я смогу избежать определенных «ловушек», с которыми я мог бы столкнуться, если бы использовал AsEnumerable ().

Однако, отвечая на недавний вопрос, я включил несколько ToList () в свои примеры кода, и поразил ряд людей, которые уверили меня, что IEnumerable намного лучше вернуть.

Я полностью запутался, мягко говоря.

Должен ли я возвращать IEnumerable в моем репозитории, а затем преобразовывать их в List в моем просмотреть модели? Следует ли мне сразу использовать ToList () в своем репозитории, как раньше? Неужели я вообще должен был оставить отложенную казнь включенной?

Джимини Рождество ...

Править: Итак, поскольку я отключил ленивую загрузку, основываясь на предыдущем совете, должен ли я затем снова включить ее, вернуть IEnumerable / IQueryable из моего репозитория и при необходимости преобразовать коллекцию в список в моих моделях представления?

Один из ответы ниже связывают IEnumerable с нетерпеливым выполнением, в то время как у меня сложилось впечатление, что только ToList () может принудительно выполнить запрос.

Я наткнулся на this , this , и это , которые содержат интересные обсуждения, связанные с этим вопросом.

15
задан Community 23 May 2017 в 12:09
поделиться