• 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
297 wizyt
pytanie zadane 12 września 2022 w C# przez everstudybee Użytkownik (670 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,390 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 (670 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ź 240 wizyt
pytanie zadane 26 września 2016 w C# przez Kfiotek Początkujący (370 p.)
0 głosów
1 odpowiedź 346 wizyt
0 głosów
0 odpowiedzi 141 wizyt
pytanie zadane 24 listopada 2019 w C# przez michal Mądrala (5,560 p.)

92,702 zapytań

141,615 odpowiedzi

320,180 komentarzy

62,062 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

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!

...