Entity Framework – po co dawać właściwość nawigacyjną, jak jest pole Id i na odwrót?

0

Czy zawsze jak dodaję właściwość nawigacyjną to muszę też utworzyć pole klucza obcego?
mam np klasę

public class Product
{
public Category ProductCategory {get; set;}
}

Taka klasa mapuje mi się do bazy i w tabeli **Product **tworzy mi się klucz obcy ProductCategory_CategoryId

natomiast gdy klasa ma postać

public class Product
{
public int CategoryId{get;set;}
public Category ProductCategory {get; set;}
}

wtedy w tabeli **Product **tworzy się klucz obcy CategoryId.

Czym różnią się te zapisy i jak je interpretowac, skoro w gruncie rzeczy dają ten sam efekt w postaci klucza obcego w tabeli **Product **do tabeli Category?

0

Mając dodane pole z kluczem obcym nie musisz ładować całej właściwości nawigacyjnej, żeby się do niego dobrać.

0

Bo EF to źle zaprojektowana śmierdząca kupa. W normalnych ORMach masz tylko właściwość, a nie szczegóły implementacyjne typu ID.

0

Czyli zawsze jak daje właściwość nawigacyjną to dawać również pole Id?

0

W EF (nie core) to chyba nawet nie masz innego wyjścia.

0

@somekind: no właśnie pytanie czy nie mam wyjścia. Bo samo dodanie właściwości nawigacyjnej tworzy mi w tabeli pole i klucz obcy do innej tabeli. Jednak ma on nazwe złożoną z nazw obydwu tabel. A jak dodam do tego właściwość z Id to tworzy mi pole klucza o ładniejszej nazwie bo złożonej tylko z nazwyID z tej innej tabeli, której dotyczy klucz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1