Gdzie zaimplementować paginacje w onion architecture?

0

Gdzie zaimplementować paginacje w onion architecture w poniższym projekcie?

https://social.technet.microsoft.com/wiki/contents/articles/36655.onion-architecture-in-asp-net-core-mvc.aspx#OA_Data

W przykładzie powyżej w "UserService i UserRepository" widzę jedynie pobieranie "GetAll" i nie ma nic o GetUserPerPage (wiem, że nie powinno być takiej logiki w repo), ale nie widzę sensu pobierania zawsze wszystkich danych z tabeli tylko dlatego, ze repozytorium to ma być tylko zródłem danych.

http://commitandrun.pl/2016/05/11/Repozytorium_najbardziej_niepotrzebny_wzorzec_projektowy/
Podobnie w artykule powyżej napisane, że "Repozytorium ma być źródłem danych dla logiki biznesowej, nie dla GUI!" (Rozdział 6)

Czyli mam rozumieć że lepiej jest pobierać wszystkie wpisy z tabeli niż implementować GetPerPage czy coś w tym stylu? Co w przypadku jak GetAll() pobierało by wszystkie zamówienia i przypuśćmy, że mamy ich bardzo dużo np. jakiś duży sklep internetowy.

1

Wydaje mi się że paginację powinno się implementować po stronie repo. Byłoby coś w stylu metody repo.getAll(jakaś klasa offset które wyniki od do).

1

No przecież jest napisane: To wymaga od nas tworzenia modeli widoków oraz klas pozwalających efektywnie je pobierać z bazy danych, wymaga specjalnych “repozytoriów” dla viewmodeli. Tylko to już nie będą repozytoria, więc nie ma sensu ich tak nazywać. Czyli tworzysz sobie obok rezpoytorium jakiegoś ViewModelProvider.

Repozytorium używane jest przy zapisach, ViewModelProvider przy odczytach.

Kiedyś pytałem, gdzie takie klasy umieścić: https://4programmers.net/Forum/1617213

1 użytkowników online, w tym zalogowanych: 0, gości: 1