Zapis danych do tabel one-to-many

Zapis danych do tabel one-to-many
FI
  • Rejestracja:ponad 13 lat
  • Ostatnio:16 dni
  • Postów:684
0

Hej Wam, kodu nie wrzucam, bo wszystkie akcje kontrolerów oraz widoki wygenerowałem sobie przez ef core, więc
chyba nie ma sensu tego tu wklejać.
Natomiast problem mam taki, że gdy złączyłem sobie dwie tabele kluczem obcym, to
od tej pory mam modelState.isValid = false i dostaje error, że w lewej tabeli potrzebne jest pole prawej a w prawej
potrzebne jest pole lewej. Dopóki tego złączenia nie było, to do lewej tabeli (wiadomo) zapisywało bez problemu.
Jak zatem to ugryźć?
To są moje tabele oraz określenie ich złączenia:

Kopiuj
public class KategorieGlowne
    {
        [Key]
        public int KatGlownaId { get; set; }
        public string? NazwaKategorii { get; set; }
        public ICollection<Podkategorie> Podkategorie { get; set; }
    }
    public class Podkategorie
    {
        [Key]
        public int Id { get; set; }
        public string? NazwaPodkategorii { get; set; }
        [Required]
        [ForeignKey("KategorieGlowne")]
        public int KategoriaGlownaRefId { get; set; }
        public KategorieGlowne KategorieGlowne { get; set; }

    }

Przed określeniem złączenia dane do tabeli KategorieGlowne dodawało. Natomiast teraz po złączeniu
nie dodaje ani do górnej ani do dolnej. Co z tym fantem zrobić?

edytowany 1x, ostatnio: finito
FI
  • Rejestracja:ponad 13 lat
  • Ostatnio:16 dni
  • Postów:684
0

Sory, to ja może jeszcze tylko krótko opiszę kroki co chcę, żeby było zrobione.

  1. Klikam ActionLink "Administrator".
  2. Klikam ActionLink "Utwórz kategorię główną"
  3. Dostaję widok formy kategorii głownej.
  4. Wpisuję nazwę tej kategorii.
  5. I do tej pory był luz, natomiast...
  6. dodałem przez ef core (z powodzeniem) drugą tabelę "Podkategorie"
  7. Dodałem ActionLink wyświetl kategorie głowne oraz ActionLink "Utwórz podkategorię"
  8. Wpisuje do formy nazwę podkategorii.
  9. No i lipa, bo modelState jest false.
  10. Co powinienem zrobić?
FI
  • Rejestracja:ponad 13 lat
  • Ostatnio:16 dni
  • Postów:684
0

Najmocniej przepraszam, już sobie poradziłem. Musiałem po prostu trochę po główkować.
Po prostu w górnej tabeli trzeba było zezwolić na null i w drugiej to samo.
Kod:

Kopiuj
public class KategorieGlowne
    {
        [Key]
        public int KatGlownaId { get; set; }
        public string? NazwaKategorii { get; set; }
        //tutaj !!!
        public ICollection<Podkategorie>? Podkategorie { get; set; }
    }
    public class Podkategorie
    {
        [Key]
        public int Id { get; set; }
        public string? NazwaPodkategorii { get; set; }
        [ForeignKey("KategorieGlowne")]
        public int KategoriaGlownaRefId { get; set; }
        //tutaj !!!
        public KategorieGlowne? KategorieGlowne { get; set; }

    }

I teraz hula ;-))

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.