4. diel - E-shop v ASP.NET Core MVC - Relácia a Repository
V minulej lekcii, E-shop v ASP.NET Core MVC - Produkty a kategórie , sme si okrem iného ukázali ako pridať do
dátového modelu ďalšej entity vrátane DataAnnotation
atribútov. Dnes v ASP.NET Core tutoriálu doplníme tieto entity o relácie a
aktualizujeme databázu. Ďalej sa pozrieme na jednu z možných implementácií
návrhového vzoru Repository.
Relácie
Medzi entitami Product
a Category
bude relácie
typu M: N, pretože jedna kategória môže obsahovať viac produktov a tiež 1
produkt môže patriť do viacerých kategórií. Táto väzba sa rieši
pridaním väzobné tabuľky s cudzími kľúčmi do oboch pôvodných tabuliek.
EF Core bohužiaľ ešte (vo verzii 2.1) automatické generovanie väzobných
tabuliek pre väzbu Many-To-Many nepodporuje, musíme si ju preto vytvoriť
sami.
Pridajte si do zložky Models/
v dátovom projekte novú triedu
CategoryProduct
(názov volíme podľa konvencie podľa entít,
ktoré bude táto tabuľka prepájať):
public class CategoryProduct { public int CategoryId { get; set; } public virtual Category Category { get; set; } public int ProductId { get; set; } public virtual Product Product { get; set; } }
Do tried Product
a Category
pridajte kolekciu typu
CategoryProduct
:
public virtual ICollection<CategoryProduct> CategoryProducts { get; set; }
Týmto sme vlastne v našich triedach vytvorili dve väzby 1: N, prvý medzi produktom a záznamy vo väzobnej tabuľke, druhú rovnako pre kategórie. Na záver ešte musíme
...koniec náhľadu článku...
Pokračuj ďalej
Minul si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Obmedzená ponuka: Nauč sa všetko a ušetri
Pred kúpou tohto článku je potrebné kúpiť predchádzajúci diel
Obsah článku spadá pod licenciu Premium no-reselling II, kúpou článku súhlasíš so zmluvnými podmienkami.
Komerčný článok (licencia no-reselling)
Tento článok vznikol na základe mnohoročných skúseností v odbore a opisuje vývoj profesionálneho komerčného produktu alebo jeho súčasti, ktorú možno priamo využiť za účelom zisku alebo k preniknutiu do komerčnej sféry IT odvetvia.
Tieto vrcholové znalosti sprístupňujeme samozrejme iba niektorým členom komunity, ktorí sa majú záujem vypracovať na profesionálov v odbore a preto sú k dispozícii len za kredity. Kód z článku môžete použiť pre jeden svoj komerčný projekt. Nie je ho však možné prepredávať (raz zakúpiť a následne predať ďalej v niekoľkých projektoch). Ak potrebujete širšie využitie kódu, radi sa s vami dohodneme na komerčnej licencii. Viac informácií nájdete v článku Licencia.
Ste pripravení stať sa profesionálmi v odbore? Stačí kliknúť.
Popis článku
Požadovaný článok má nasledujúci obsah:
Nastavenia relácií 1: N a M: N v Entity Framework Code First, vloženie inicializačných a testovacích dát, implementácia návrhového vzoru Repository.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.