• 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

Aruba Cloud - Virtual Private Server VPS
0 głosów
493 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,020 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 (280,450 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 945 wizyt
pytanie zadane 20 lipca 2021 w C# przez tomasz12345 Użytkownik (750 p.)
0 głosów
1 odpowiedź 1,318 wizyt
pytanie zadane 9 kwietnia 2019 w C# przez karol928 Początkujący (320 p.)
0 głosów
0 odpowiedzi 291 wizyt
pytanie zadane 26 maja 2019 w C i C++ przez Krystek102 Bywalec (2,440 p.)

93,327 zapytań

142,323 odpowiedzi

322,396 komentarzy

62,657 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...