• 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

Object Storage Arubacloud
+1 głos
269 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 (52,370 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ź 235 wizyt
pytanie zadane 26 września 2016 w C# przez Kfiotek Początkujący (370 p.)
0 głosów
1 odpowiedź 338 wizyt
0 głosów
0 odpowiedzi 137 wizyt
pytanie zadane 24 listopada 2019 w C# przez michal Mądrala (5,560 p.)

92,584 zapytań

141,434 odpowiedzi

319,669 komentarzy

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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...