Witam mam problem ze zrozumieniem oraz z naprawieniem problemu. Najpierw tworzyłem tylko jeden obiekt DataContext w całym repozytorium i nie było problemów ale dla potrzeb testowania repozytorium i odchudzania programu zacząłem tworzyć i niszczyć dataContexty w każdej metodzie repozytorium i tu pojawił się problem z wyjątkiem "DataContext accessed after Dispose."
mój fragment repozytorium wygląda tak:
public IQueryable<Pracownik> GetAll()
{
using (var db = dataContextWrapper.UtworzDataContext())
{
return db.Pracownicy().AsQueryable();
}
}
Wszystkie metody repozytorium mam wykonane w ten sam sposób, w głównym oknie ładuje całe DataGridView, dopiero w chwili gdy chce otworzyć okno edycje pojedynczego pracownika program wysypuje mi się podczas próby skonfigurowania ComboBoxa, tak jak pokazuje screen:
I teraz pytania:
1) to źle zaprojektowane repozytorium jest powodem, jeżeli tak to jak je zaprojektować właściwie?
2) czy może źle zaprojektowany w ogóle sposób prezentacji danych? a jeżeli tak to jak to poprawić?
3) dlaczego właściwie ten błąd czepia się właśnie przy ustawianiu ValueMember dla ComboBox'a?
4) jak sprawić aby w testach wyszły tego typu babole? jak pisać testy które by wyłapały takie rzeczy? (zaczynam zgłębiać NUnit i Moq)