Estou aprendendo EF 5 e estou tentando entender o motivo de passar um repositório da janela principal (ponto de carga) para um View Model.
Eu li que a melhor maneira de usar context
é através do uso block
igual a:
// within CompanyViewModel
using (var _context = new MyEntities())
{
var _query = from co in _context.Companies
select co;
this.AllCompanies = new ObservableCollection<Models.Company>(_query);
}
Onde MyEntities
é o objeto criado pelo VS no arquivo EDMX.
Então, a minha pergunta é se eu posso simplesmente chamar MyEntities de um ViewModel, por que eu iria passar um repositório (uma referência para MyEntities
) em cada ViewModel?
Respostas:
0 para resposta № 1Porque ele torna seu código inerentemente mais testável separando o código que interage com seu banco de dados do código que direciona a parte do lado do cliente de seu aplicativo.
Veja as postagens Aqui e Aqui para mais explicações sobre o padrão do repositório e seus usos gerais.