Zastanawiam się, jak należy grupować repozytoria? Podobnie jak w przykładach, które widziałem w mvc asp.net, aw moich książkach zasadniczo używają jednego repozytorium na tabelę bazy danych. Ale wydaje się, że wiele repozytoriów prowadzi do tego, że później będziesz musiał wywoływać wiele repozytoriów w celu kpiny i innych rzeczy.
Więc myślę, że powinienem je pogrupować. Jednak nie jestem pewien, jak je pogrupować.
W tej chwili utworzyłem repozytorium rejestracji, aby obsłużyć wszystkie moje sprawy rejestracyjne. Jednak są jakieś 4 tabele, które muszę zaktualizować, a zanim miałem 3 repozytoria, aby to zrobić.
Na przykład jedna z tabel jest tabelą licencji. Kiedy się rejestrują, patrzę na ich klucz i sprawdzam, czy istnieje w bazie danych. Co się teraz stanie, jeśli będę musiał sprawdzić ten klucz licencyjny lub coś innego z tej tabeli w innym miejscu niż rejestracja?
Jedno miejsce może być zalogowane (sprawdź, czy klucz nie wygasł).
Więc co bym zrobił w tej sytuacji? Przepisz kod ponownie (przerwij DRY)? Spróbuj po prostu połączyć te 2 repozytoria razem i miej nadzieję, że żadna z metod nie będzie potrzebna w innym momencie (na przykład może mam metodę, która sprawdza, czy używana jest nazwa_użytkownika - może będę potrzebować tego gdzie indziej).
Również jeśli połączę je ze sobą, potrzebowałbym albo 2 warstw usług, które przechodzą do tego samego repozytorium, ponieważ myślę, że posiadanie całej logiki dla 2 różnych części witryny byłoby długie i musiałbym mieć nazwy takie jak ValidateLogin (), ValdiateRegistrationForm () , ValdiateLoginRetrievePassword () itd.
Albo zadzwoń do Repozytorium i po prostu masz dziwnie brzmiącą nazwę?
Po prostu wydaje się trudne stworzenie repozytorium, które ma wystarczająco ogólną nazwę, aby można było go używać w wielu miejscach aplikacji i nadal ma sens, a nie sądzę, aby wywoływanie innego repozytorium w repozytorium było dobrą praktyką?