• 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

VPS Starter Arubacloud
+1 głos
240 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,890 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ź 231 wizyt
pytanie zadane 26 września 2016 w C# przez Kfiotek Początkujący (370 p.)
0 głosów
1 odpowiedź 330 wizyt
0 głosów
0 odpowiedzi 131 wizyt
pytanie zadane 24 listopada 2019 w C# przez michal Mądrala (5,560 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...