7. týždeň

Úloha 5 - EntityFramework - implementácia servisných komponentov

Ciele

  1. Implementujte servisné komponenty použitím Entity Framework Core.

Úvod

Vašou úlohou na dnešnom cvičení je implementovať služby prostredníctvom technológie EntityFramework Core vďaka ktorej môžeme jednoduchšie ukladať a sprístupňovať údaje z relačných údajových zdrojov-databáz.

Postup

Krok 1

Pridajte do projektu závislosť na EntityFramework Core prostredníctom Nuget Package Manager Console.

Obr. 1

Zvoľte váš projekt s jadrom hry ako Startup Project (kontextové menu v Solution Explorer nad projektom a v ňom zvoľte Set as Startup Project).

Obr. 2

V Package Manager Console zvoľte ako Default Project váš projekt s jadrom hry. V konzole napíšte: Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools

Obr. 3

Vytvorte triedu DbContext

namespace NPuzzle
    {
        public class NPuzzleDbContext : DbContext
        {
            public DbSet<Score> Scores{ get; set; }
 
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=NPuzzle;Trusted_Connection=True;");
            }
        }
    }

Pridajte do entitných tried primárne kľúče.

public class Score
{
    public int Id { get; set; }
    ...

Pripravte migráciu databázy a vzkonajte ju prostredníctvom Nuget Package Manager Console. V konzole napíšte: Add-Migration Mig1 Update-Database Presvedčte sa, že v databáze vznikli tabuľky.

Obr. 4

Obr. 5

Úloha 1.1

Implementujte všetky servisné komponenty prostredníctvom technológie Entity Framework Core - pre skóre, komentáre a hodnotenie.

Pri implementácii servisných komponentov sa inšpirujte verziou hry NPuzzle z gitu: https://git.kpi.fei.tuke.sk/jaroslav.poruban/NPuzzle2020

Zdroje

  1. Entity Framework Core https://docs.microsoft.com/en-us/ef/core/
  2. Getting Started with EF Core on .NET Core Console App with a New database https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite