Instâncias de objetos MVC ou classes estáticas?
Pergunta
Estou confuso quanto ao momento de criar instâncias de objetos ou classes auxiliar estática. Por exemplo, se eu chamar um método para atualizar um modelo de dados e apresentar ao banco de dados, eu criar uma instância da DataContext. Qual é o tempo de vida do que Datacontext e é ok para criar novas instâncias cada vez que é preciso haver uma nova atualização de dados?
No meu controlador eu criei uma instância de DataContext e reutilizar essa instância quando postagem de volta ao controlador por exemplo.
Solução
O DataContext é uma classe muito leve e se destina a ser usado para uma unidade de trabalho. Normalmente, eu passar em uma fábrica que irá criar um DataContext apropriada conforme necessário. Eu normalmente irá envolver isso em um bloco usando e converter os resultados de uma lista (ou outro objeto) para que a consulta é executada no código controlador e os objetos resultantes passados ??para meu ponto de vista. Desta forma, o DataContext podem ser eliminados de (a partir do bloco usando) no método de tratamento.
A razão que injetar uma fábrica no controlador é duas vezes - ele permite que o DataContext a ser criado sob demanda e que me permite usar uma fábrica que gera um DataContext simulada para teste. Este último me permite evitar o uso do banco de dados real em meus testes de unidade.