Kontext

Yay, dags att lära oss om databas-kontexten! En databaskontext är en klass som ärver från DbContext och används för att kommunicera med databasen med hjälp av Entity Framework Core.

TL;DR

En databaskontext är en klass som ärver från DbContext och används för att kommunicera med databasen med hjälp av Entity Framework Core.

Beskrivning

En DBContext innehåller en samling av entiteter. Vad är då en entitet? Jo, en entitet är helt enkelt en klass som representerar en tabell i databasen. Varje entitet har egenskaper som motsvarar kolumnerna i tabellen.

Skapa en kontext för SQL Server

public class MyDbContext : DbContext
{
    string connString = "Server=localhost;Database=MyDatabase;User Id=sa;Password=Password123;";

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(connString);
    }

    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}

Skapa en kontext för SQLite

public class MyDbContext : DbContext
{
    string connString = "Data Source=MyDatabase.db";

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite(connString);
    }

    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}

Skapa en kontext för MySQL (med Pomelo)

public class MyDbContext : DbContext
{
    string connString = "Server=localhost;Database=MyDatabase;User Id=sa;Password=Password123;";

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        var version = new MySqlServerVersion(new Version(8, 0, 21)); // Sätt senaste versionen av MySQL
        optionsBuilder.UseMySql(connString, version);
    }

    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}

Awesome! Nu har vi sett exempel på hur man skapar en kontext för olika databassystem. I varje exempel skapar vi en ny klass som ärver från DbContext och konfigurerar anslutningssträngen i OnConfiguring-metoden.

I SQL Server-exemplet använder vi UseSqlServer-metoden för att ange att vi vill använda SQL Server som databassystem.

I SQLite-exemplet använder vi UseSqlite-metoden för att ange att vi vill använda SQLite som databassystem.

I MySQL-exemplet använder vi UseMySql-metoden från Pomelo.EntityFrameworkCore.MySql-paketet för att ange att vi vill använda MySQL som databassystem. Vi specificerar också vilken version av MySQL vi använder.

Nu är vi redo att skapa och interagera med våra databaskontexter. Najs jobbat!

Obligatorisk Dad-joke

Varför blev Entity Frameworks DbContext så populär på stand-up scenen?

För att den hade en enastående “Connection” med publiken och kunde hantera många “Entities” samtidigt!


Table of contents


    Till toppen

    Licens: Apache 2.0 | © 2023 Marcus Medina, Campus Mölndal. Alla rättigheter förbehållna.
    Du får använda och modifiera detta verk enligt villkoren i Apache License, Version 2.0. Du får inte använda detta verk för kommersiella ändamål utan tillstånd från upphovsmannen.