Code-First s Entity Framework

Entity Framework Core umožňuje vytvoriť databázu priamo z kódu bez toho, aby si musel najprv ručne definovať tabuľky. Tento prístup sa nazýva Code-First. V tomto článku si ukážeme jednoduchý príklad s dvomi triedami a celým procesom od modelu až po migráciu na databázový server.


1. Inštalácia EF Core balíkov (cez Visual Studio)

Otvorte Visual Studio → Tools → NuGet Package Manager → Package Manager Console.

Pre SQL Server nainštalujte tieto balíky:

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools

2. Modelové triedy (Product a Category)

Vytvoríme dva jednoduché modely s väzbou 1:N – kategória môže mať viac produktov.

Category.cs

public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }

    public List Products { get; set; }
}

Product.cs

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }

    public int CategoryId { get; set; }
    public Category Category { get; set; }
}

3. DbContext trieda

DbContext je most medzi aplikáciou a databázou.

AppDbContext.cs

using Microsoft.EntityFrameworkCore;

public class AppDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }
    public DbSet<Category> Categories { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(
            "Server=localhost;Database=EfDemo;Trusted_Connection=True;TrustServerCertificate=True");
    }
}

4. Vytvorenie prvej migrácie (Package Manager Console)

V konzole vygenerujte prvú migráciu:

Add-Migration InitialCreate

A preneste ju do databázy:

Update-Database

V tejto chvíli je databáza fyzicky vytvorená s dvomi tabuľkami: Categories a Products.


5. Zmena modelu – pridanie nového parametra

Pridáme do modelu Product nový parameter, napr. Stock:

Upravený Product.cs

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }

    public int Stock { get; set; }  // nový parameter

    public int CategoryId { get; set; }
    public Category Category { get; set; }
}

Vytvorenie ďalšej migrácie:

Add-Migration AddProductStock

Aktualizácia databázy:

Update-Database

EF Core automaticky rozpozná zmenu a vytvorí SQL príkaz na pridanie nového stĺpca do tabuľky Products.


6. Aplikovanie migrácie na vzdialený databázový server

Ak chceš migráciu poslať do inej databázy (napr. server v cloude alebo v práci), stačí upraviť connection string v AppDbContext.

Príklad pre SQL Server v cloude:

// v AppDbContext:
optionsBuilder.UseSqlServer(
    "Server=tcp:mojserver.database.windows.net,1433;
     Initial Catalog=EfDemoRemote;
     User ID=mojeMeno;
     Password=mojeHeslo;
     Encrypt=True;
     TrustServerCertificate=False");

Potom jednoducho spustíš:

Update-Database

...a migrácia sa prenesie na vzdialený server.


7. Jednoduchý test – vloženie dát

using var db = new AppDbContext();

var cat = new Category { Name = "Electronics" };
db.Categories.Add(cat);

db.Products.Add(new Product
{
    Name = "Arduino Uno",
    Price = 25.5m,
    Stock = 10,
    Category = cat
});

db.SaveChanges();

Po spustení aplikácie sa údaje uložia do databázy.


🎯 Zhrnutie

  • Vytvorili sme 2 modely – Product a Category
  • Definovali sme DbContext
  • Vytvorili migráciu cez Add-Migration
  • Databázu sme vytvorili cez Update-Database
  • Ukázali sme si, ako spraviť ďalšiu migráciu po úprave modelu
  • Ukázali sme aj migráciu na vzdialený SQL Server

Toto je najjednoduchší a najprehľadnejší spôsob, ako začať s EF Core Code-First v .NET.

Máte projekt? Prvá konzultácia je zadarmo

Či už máte hotové zadanie alebo len nápad - odpoviem vám do 24 hodín.

Kapacita obmedzená: V danom čase aktívne pracujem maximálne na 2 projektoch súčasne, aby som zachoval vysokú kvalitu.

Napísať Email 📞 Zavolať teraz LinkedIn Profil