Uczę się EF 5 i próbuję zrozumieć przyczynę przekazania repozytorium z głównego okna (punktu ładowania) do modelu widoku.
Przeczytałem, że najlepszy sposób użycia context
jest przez użycie block
jak na przykład:
// within CompanyViewModel
using (var _context = new MyEntities())
{
var _query = from co in _context.Companies
select co;
this.AllCompanies = new ObservableCollection<Models.Company>(_query);
}
gdzie MyEntities
jest obiektem utworzonym przez VS w pliku EDMX.
Moje pytanie brzmi: czy mogę po prostu wywołać MyEntities z ViewModel, dlaczego miałbym przekazać repozytorium (odniesienie do MyEntities
) do każdego ViewModel?
Odpowiedzi:
0 dla odpowiedzi № 1Ponieważ sprawia, że twój kod staje się bardziej testowalny przez oddzielenie kodu, który współdziała z twoją bazą danych, od kodu, który napędza część aplikacji po stronie klienta.
Zobacz posty tutaj i tutaj więcej wyjaśnień dotyczących wzorca repozytorium i jego ogólnych zastosowań.