• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Klucz obcy w tabeli, podejście Code-First

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
+1 głos
100 wizyt
pytanie zadane 12 września 2022 w C# przez everstudybee Użytkownik (610 p.)

Hej mam problem ze zrozumieniem tworzenia klucza obcego w Modelu w projekcie ASP.NET Core 6 MVC.

Poniżej jest link do dokumentacji i chodzi https://docs.microsoft.com/pl-pl/ef/core/modeling/relationships?tabs=fluent-api%2Cfluent-api-simple-key%2Csimple-key#foreign-key

Jest tam taki kod:

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }

    public List<Post> Posts { get; set; }
}

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public int BlogForeignKey { get; set; } //linia 1
    public Blog Blog { get; set; } //linia 2
}

Chodzi o linie z komentarzem linia 1 i linia 2. Czemu trzeba podawać te dwie linie? W bazie tworzą się dwa pola i linia 1 tworzy pole int z numerem Id Blogu, a dopiero linia 2 tworzy klucz obcy. Po co Microsoft zaleca dublowanie tej samej informacji?

Ogólnie wszystko działa, tylko chodzi mi o to czemu jest takie zalecenie, a nie tylko linia 2 by tworzyło się jedno pole w tabeli.

1 odpowiedź

+3 głosów
odpowiedź 12 września 2022 przez Velta Maniak (51,130 p.)
wybrane 13 września 2022 przez everstudybee
 
Najlepsza

Czemu trzeba podawać te dwie linie?

Nie trzeba! Mówi o tym wspomniany przez Ciebie poradnik, wskazując na kilka konwencji utworzonych modeli i wyjaśniając minimum w sekcji Single navigation property:

Including just one navigation property (no inverse navigation, and no foreign key property) is enough to have a relationship defined by convention. You can also have a single navigation property and a foreign key property.

To wyłącznie nawigacja wsteczna przez referencję – dla wygody. Wyświetlając informacje o poście możesz też przy okazji pokazać jakieś podstawowe informacje o blogu, na którym dany post został opublikowany, ale nie musisz.

komentarz 13 września 2022 przez everstudybee Użytkownik (610 p.)
Tak to jest jak się pisze po nocy i się nie doczyta na spokojnie całego artykułu. Dzięki serdeczne za odpowiedź, mój błąd

Podobne pytania

0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 26 września 2016 w C# przez Kfiotek Początkujący (370 p.)
0 głosów
1 odpowiedź 308 wizyt
0 głosów
0 odpowiedzi 116 wizyt
pytanie zadane 24 listopada 2019 w C# przez michal Mądrala (5,560 p.)

91,276 zapytań

139,942 odpowiedzi

315,129 komentarzy

60,722 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...