• 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

VPS Starter Arubacloud
0 głosów
398 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 (269,120 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 568 wizyt
pytanie zadane 20 lipca 2021 w C# przez tomasz12345 Użytkownik (750 p.)
0 głosów
1 odpowiedź 1,056 wizyt
pytanie zadane 9 kwietnia 2019 w C# przez karol928 Początkujący (320 p.)
0 głosów
0 odpowiedzi 157 wizyt
pytanie zadane 26 maja 2019 w C i C++ przez Krystek102 Bywalec (2,440 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...