У меня есть несколько действий в моих контроллерах, которые возвращают IEnumerable из объектов EF.ASP.NET MVC, EF: вернуть методы действий Список вместо IEnumerable
Я думал о том, чтобы заставить эти actionmethods возвращать список вместо этого (просто вызывая model.ToList(), прежде чем передавать его обратно в представление).
Есть две причины, почему я думаю, что делать:
- Во-первых, я измерения производительности каждого из actionmethods в классе BaseController (onactionexecuted/onactionexecuting) и если я вернусь IEnumerable, тогда запрос не выполняется до тех пор, пока не будет обработан onaction.
- Во-вторых, я планировал использовать соединения, используемые моим «слоем услуг» внутри OnActionExecuted, однако, если я их там размещаю, представления не позволяют bc моделей не получать.
Мой вопрос: есть ли какие-либо недостатки в этом? Я уверен, что всякая IEnumerable Model будет пройдена полностью, поэтому не будет проблемы с извлечением данных, которые не будут использоваться.
Благодарим за помощь.
Вы должны убедиться, что ваши запросы материализованы (выполнены) перед передачей данных на ваш взгляд. Вызов 'ToList()' является одним из способов сделать это. –