Hej.
Tworzę aplikację crudową w blazor, otrzymuję następujący błąd:
Nie rozumiem w czym może leżeć problem, sam błąd wskazuje na linijkę 26 w pliku SuperHeroes, ale nie mam pomysłu o co może chodzić i jak to naprawić.
Tak dokładnie, przy zwracanym JSONie z API Comic okazuje się być nullem.
W jaki sposób mogę to naprawić? Bo z tego co wyczytałem, to ten problem pojawia się wtedy kiedy dosłownie do obiektu nie została przypisana wartość, choć teoretycznie powinien mieć tę wartość przypisaną zawsze. W innym miejscu wyczytałem że to problem z awaitami, przez co statyczne elementy ładują się zanim reszta jest załadowana, ale dalej nie przychodzi mi do głowy jak to rozwiązać.
choć teoretycznie powinien mieć tę wartość przypisaną zawsze.
Teoretycznie to on może "nie mieć wartości" albo mieć wartość zgodnie z tym co zostało zadeklarowane w modelu superbohatera
public Comic? Comic { get; set; }
Znak zapytania dosłownie wskazuje, że może być nullem + obiekty "z natury", a raczej odwołania do nich mogą być nullami, gdyż null oznacza odwołanie, które nie wskazuje na żaden obiekt.
To zupełnie nie brzmi jak awaity, bardziej jak nie zrobienie czegoś na poziomie bazy danych lub konwersji do JSONa.
(zakładam że zweryfikowałeś że w samej bazie komiksy etc są poprawnie ustawione)
Na przykład (nie znam dobrze EF, kieruję się intuicją), w GetSingleHero masz:
_context.SuperHeroes.Include(h => h.Comic)
Ale w GetSuperHeroes tego Include nie ma - to może sprawić, że baza nie zrobi joina i wrzuci zwykłego nulla do obiektu.
Takk, o to chodziło! Bardzo dziękuję, faktycznie przeoczyłem konieczność wrzucenia Include. Jeszcze jedno mam małe pytanko, bo dodałem include i wszystko pięknie działa, tylko visual studio nadal pokazuje mi taki warning:
Da się coś z tym zrobić? W sensie ja jestem świadomy tego że to jest nullable object, ale można się jakoś pozbyć tego ostrzeżenia?
@Idezam, Inicjalizacja pustym obiektem pola Comic lub usunięcie ? z typu pola powinna rozwiązać problem.
93,652 zapytań
142,574 odpowiedzi
323,089 komentarzy
63,166 pasjonatów
Motyw:
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