Объектные экземпляры MVC или статические классы?
Вопрос
Я не совсем понимаю, когда создавать экземпляры объектов или классы Static Helper. Например, если я вызываю метод для обновления модели данных и отправки в базу данных, я создаю экземпляр DataContext. Каков срок действия этого Datacontext, и можно ли создавать новые экземпляры каждый раз, когда требуются новые обновления данных? Р>
В моем контроллере я создал экземпляр DataCOntext и повторно использую этот экземпляр, например, при обратной отправке в контроллер. Р>
Решение
DataContext - довольно легкий класс и предназначен для использования в качестве единицы работы. Обычно я передаю Factory, которая при необходимости создаст соответствующий DataContext. Обычно я оборачиваю это в блок using и преобразую результаты в List (или другой объект), чтобы запрос выполнялся в коде контроллера, а полученные объекты передавались в мое представление. Таким образом, DataContext может быть удален (из блока using) в методе контроллера.
Причина, по которой фабрика вводит фабрику в контроллер, двояка: она позволяет создавать DataContext по требованию и позволяет мне использовать фабрику, которая генерирует фиктивный DataContext для тестирования. Последнее позволяет мне избежать использования реальной базы данных в моих модульных тестах.