Witam ponownie ;)
Mam krótkie pytanie. Chodzi o moją aplikację WPF. Podział mam taki, że mam widok, do tego podpięte ViewModele, które operują na serwisach, które to mogą korzystać z innych serwisów oraz korzystają z bazy danych bezpośrednio poprzez Linq na dbcontext. Moje pytanie polega na tym, jak tworzyć obiekty dbContextu dla tych serwisów? Zazwyczaj robiłem to tak, że w serwisie był on jako pole:
private SmContext db = new SmContext();
Jednak, ostatnio przy Code Analysis wywaliło mi z tej okazji CA2202. Szukam propozycji (nie mam zbytniego doświadczenia) jeśli chodzi o skorzystanie z db contextu. Myślałem nad użyciem using w każdej metodzie serwisu, myślałem nad wstrzykiwaniem z kontenera...
Drugie pytanie, dzisiaj przeczytałem w jednym z wątków jak @somekind zwraca uwagę, aby w ViewModelu nie było sporo serwisów, gdyż burzy to SRP ViewModelu. Jak mógłbym to u siebie zorganizować, gdyż jeden z moich ViewModeli ma przekazywanych 5 serwisów w konstruktorze. Chodzi o to, że mam okno z dodawaniem nowej naprawy, jednak mam tam np. comboboxa z listą dostępnych statusów napraw do wyboru, no i z tej okazji w konstruktorze przypisuję do bindowanej property listę tych statusów korzystając z serwisu RepairStatusesService wywołując metodę GetAll. Podobnie jeśli chodzi o przypisanie serwisanta do naprawy. Mam wywołanie metody z klasy UsersService. I tak dalej. Jak można to ogarnąć? Mam zrobić jakiś serwis typu unit of work dla dodawania naprawy?