• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

API w Asp.NET Core - Serwisy i Repozytoria

Object Storage Arubacloud
0 głosów
433 wizyt
pytanie zadane 20 grudnia 2020 w C# przez czujek22 Dyskutant (7,670 p.)

Cześć. Robię aplikację API w ASP.NET Core 3.1 z wykorzystaniem wzorca model->repository->service->controller, gdzie z modelem bez kluczów obcych nie miałem problemów, tak nie wiem jak zrobić to z modelem, który ma powiązanie z innym modelem, który z kolei ma kolejne powiązanie i chciałbym aby API wyświetlało mi całe drzewko takich obiektów.

Przykład powiązań modeli: 

 

To jak chcę to wyświetlać:

Czy aby osiągnąć drzewko wynikowe w JSON mam zrobić repozytorium dla każdego z modeli a w serwisie to połączyć i zwracać osobny model ?

komentarz 26 czerwca 2021 przez tkz Nałogowiec (42,000 p.)
Masz błąd w diagramie encji. Ocenę może mieć tylko jeden student? Tak samo przedmiot. I tutaj, przy przedmiot-nauczyciel przedrmiot brakuje tego, czego użyłeś wcześniej. Wymagane, by był nauczyciel od przedmiotu.

2 odpowiedzi

+1 głos
odpowiedź 26 czerwca 2021 przez assassin Gaduła (3,260 p.)

Nie jestem specjalistą. Z góry zaznaczam.

Ale to, co przyszło mi do głowy to czy nie lepiej stworzyć modele, które będą miały w sobie listy?

Poza tym skoro masz relacje w bazie danych to po co jeszcze kombinować w modelach?

Ja bym zrobić coś w stylu:

MODELE

public class Oceny
{
    // tutaj właściwości
    public int IdOceny {get; set;}
    public string Przedmiot { get; set; }
    public int IdNauczyciela { get; set; }  // no i tutaj jest jakby relacja z tabelą Nauczyciele, która też ma id dla danego nauczyciela
}

Ja raczej tak robiłem. Możesz spróbować

 

–1 głos
odpowiedź 26 czerwca 2021 przez Wiciorny Ekspert (272,310 p.)
Poczytaj czym są relacje... i jak wygląda mapowanie relacji bazodanowych z obiektami.
Każdy obiekt z osobna powinien mieć swój dostęp repozytorium, swój serwis i swoje endpointy w zakresie Controllera.

Natomiast jeśli "obiekt agregat" zawiera obiekty wewnatrz to obsluga jest juz w serwisie agregatu... i tutaj wykorzystujes mapowanie obiektów i RELACJE bazodanowe.

Podobne pytania

+1 głos
2 odpowiedzi 690 wizyt
pytanie zadane 20 lipca 2021 w C# przez tomasz12345 Użytkownik (750 p.)
0 głosów
1 odpowiedź 1,103 wizyt
pytanie zadane 9 kwietnia 2019 w C# przez karol928 Początkujący (320 p.)
0 głosów
0 odpowiedzi 186 wizyt
pytanie zadane 26 maja 2019 w C i C++ przez Krystek102 Bywalec (2,440 p.)

92,684 zapytań

141,589 odpowiedzi

320,073 komentarzy

62,044 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...