• 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

0 głosów
599 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,040 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 (282,600 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 1,058 wizyt
pytanie zadane 20 lipca 2021 w C# przez tomasz12345 Użytkownik (750 p.)
0 głosów
1 odpowiedź 1,435 wizyt
pytanie zadane 9 kwietnia 2019 w C# przez karol928 Początkujący (320 p.)
0 głosów
0 odpowiedzi 335 wizyt
pytanie zadane 26 maja 2019 w C i C++ przez Krystek102 Bywalec (2,440 p.)

93,631 zapytań

142,553 odpowiedzi

323,056 komentarzy

63,138 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2658p. - dia-Chann
  2. 2630p. - DziarnowskiJ
  3. 2550p. - raydeal
  4. 2478p. - rucin93
  5. 2361p. - Łukasz Piwowar
  6. 2348p. - Łukasz Eckert
  7. 2340p. - CC PL
  8. 2300p. - Adrian Wieprzkowicz
  9. 2082p. - Michal Drewniak
  10. 1957p. - Maurycy W
  11. 1885p. - robwarsz
  12. 1811p. - rafalszastok
  13. 1600p. - Rafał Trójniak
  14. 1588p. - Tomasz Bielak
  15. 1494p. - ssynowiec
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...