Ehh, ciężko mi wytłumaczyć w jednym zdaniu - otóż próbuje się przekonać do MVC i póki co jest fajnie, ale w połączeniu z modelami i relacjami w bazie danych - nastąpiło więcej problemów - otóż nie rozumiem, w sytuacji niżej - czy mam dodać więcej modelów do View i gdzieś w Controllerze, czy gdzie?
Sytuacja wygląda tak, mam Foreign Key to gatunku gier, i wydawców w modelu Game. Nie wiem jak to przekazać, żeby wyświetliło mi nazwę (wiem jak znalaźć to w bazie itd.) ale nie wiem w którym miejscu i jak. Obrazowo to wygląda tak!
No, ale widzę, że masz wszystko w modelu. GenreId i Genre. Wygląda to jakbyś używał EfCore i jeśli tak jest i zrobiłeś wszystko poprawnie przy migracji, to powinieneś mieć wypełnione zarówno GenreId jak i Genre, a tedy w RazorView wszystko jest proste:
@model IEnumerable<Game>
foreach(var game in Model)
{
<td>game.Genre.Name</td>
}
Jeśli nie masz wypełnionego Genre i/lub GenreId to znaczy, że coś zrobiłeś źle przy tworzeniu migracji albo masz tak w bazie danych.
Tak się da, ale to nie jest najlepsze rozwiązanie z punktu widzenia wydajności oraz utrzymania kodu.
Powinieneś mieć oddzielne viewmodele, które zwracasz z akcji kontrolerów zamiast pchania klas ORMa na GUI.
Faktycznie, chyba działa. Chyba, bo coś źle zmapowałem, bo zwraca mi NULL.
Używałem konwencjonalnej metody, bez Fluent API i tak to wygląda u mnie:
W bazie mam wszystko dobrze. tzn chyba. Tu macie zdj.
Example.Models.Game.Genre.get returned null.
jakby ktoś mógł zerknąć, bo nie mogę znaleźć
Udało się! Brakowało .Include w kontrolerze!
Dzięki za odpowiedzi, dzięki nim szybko doszedłem do rozwiązania!
Brakowało .Include w kontrolerze!
tu trzeba płakać :P