Programování

Jak používat DbContext v Entity Framework Core

Microsoft Entity Framework je open-source objektově-relační mapovač nebo ORM pro ADO.Net, který vám pomůže izolovat objektový model vaší aplikace od datového modelu. Entity Framework zjednodušuje přístup k datům ve vaší aplikaci tím, že vám umožňuje psát kód k provádění operací CRUD (vytváření, čtení, aktualizace a mazání), aniž byste museli vědět, jak jsou data v podkladové databázi přetrvávat.

DbContext funguje jako most mezi třídami domén a databází. V tomto článku budeme zkoumat, jak můžeme nakonfigurovat DbContext pomocí instance DbContextOptions pro připojení k databázi a provádění operací CRUD pomocí poskytovatele Entity Framework Core.

DbContext vysvětleno

DbContext je nedílnou součástí Entity Framework, která představuje relaci připojení s databází. Můžete využít DbContext k dotazování na data do vašich entit nebo uložení entit do podkladové databáze. DbContext v Entity Framework Core má řadu povinností:

  • Správa připojení
  • Dotazování na data z databáze
  • Ukládání dat do databáze
  • Změnit sledování
  • Ukládání do mezipaměti
  • Správa transakcí

V následujících částech prozkoumáme, jak můžeme pracovat s DbContext v ASP.Net Core.

Vytvořte aplikaci ASP.Net Core v sadě Visual Studio

Začneme vytvořením aplikace ASP.Net Core. Tento příspěvek předpokládá, že Visual Studio 2017 je ve vašem systému již nainstalovaný. Pokud nemáte nainstalovanou Visual Studio 2017, můžete si stáhnout kopii zde. Pak podle těchto kroků vytvořte nový projekt ASP.Net Core.

  1. Spusťte Visual Studio 2017 IDE.
  2. Klikněte na Soubor -> Nový -> Projekt.
  3. Vyberte šablonu projektu „ASP.Net Core Web Application“.
  4. Zadejte název a umístění projektu.
  5. Klikněte na OK.
  6. V dialogovém okně „Nová webová aplikace ASP.Net Core“ vyberte .Net Core.
  7. Z rozevíracího seznamu vyberte ASP.Net Core 2.1.
  8. Jako šablonu projektu vyberte „Web API“.
  9. Ignorujte zaškrtávací políčko „Povolit podporu Dockeru“; nebudeme zde používat Docker.
  10. Ujistěte se, že je zobrazena zpráva „No Authentication“; nebudeme to také potřebovat.
  11. Klikněte na OK

A to je vše! Tuto aplikaci použijeme k prozkoumání Entity Framework Core v následujících částech.

Vytvořte nový DbContext v Entity Framework Core

Chcete-li vytvořit vlastní třídu kontextu, měli byste rozšířit základní třídu DbContext v Entity Framework Core, jak je znázorněno níže.

veřejná třída CustomContext: DbContext

    {

public CustomContext (možnosti DbContextOptions): základna (možnosti)

        {

        }

Protected Override Void OnConfiguring (DbContextOptionsBuilder optionsBuilder)

        {

// Sem napište kód pro konfiguraci kontextu

        }

protected override void OnModelCreating (ModelBuilder modelBuilder)

        {

// Zde zadejte svůj kód pro konfiguraci modelu

        }

    }

Viz výše třídu CustomContext. Všimněte si, že přijímá odkaz na instanci třídy DbContextOptions třídy. Tato instance obsahuje konfigurační informace potřebné pro DbContext. DbContext můžete také nakonfigurovat pomocí metody OnConfiguring. Metoda OnModelCreating, která jako argument přijímá odkaz na instanci třídy ModelBuilder třídy, se používá ke konfiguraci modelu.

Ve třídě DbContext obvykle máte vlastnosti DbSet entit, jak je ukázáno v fragmentu kódu níže.

veřejná třída CustomContext: DbContext

    {

public CustomContext (možnosti DbContextOptions): základna (možnosti)

        {

        }

Protected override void OnConfiguring (DbContextOptionsBuilder optionsBuilder)

        {

        }

protected override void OnModelCreating (ModelBuilder modelBuilder)

        {

        }

public DbSet Authors {get; soubor; }

veřejné DbSet blogy {get; soubor; }

    }

Zaregistrujte DbContext s modulem runtime Entity Framework Core

Dále byste měli zaregistrovat svou vlastní třídu DbContext jako službu v IServiceCollection prostřednictvím metody ConfigureServices třídy Startup.

  public void ConfigureServices (služby IServiceCollection)

        {

services.AddMvc (). SetCompatibilityVersion

(CompatibilityVersion.Version_2_1);

services.AddDbContext (možnosti =>

options.UseSqlServer

(Configuration.GetConnectionString („TestConnection“)));

        }

Připojovací řetězec se získá pomocí instance IConfiguration. Metoda rozšíření AddDbContext se používá k registraci DbContext jako služby. Všimněte si, jak se odkaz na DbContextOptionsBuilder používá ke konfiguraci DbContextOptions. Metoda rozšíření UseSqlServer se používá k registraci poskytovatele databáze serveru SQL Server s modulem runtime Entity Framework Core.

Alternativně můžete přepsat metodu OnConfigure a zaregistrovat poskytovatele databáze serveru SQL, jak je znázorněno v úryvku kódu níže.

Protected Override Void OnConfiguring (DbContextOptionsBuilder optionsBuilder)

    {

if (! optionsBuilder.IsConfigured)

        {

optionsBuilder.UseSqlServer ("TestConnection");

        }

    }

Použijte DbContext s vkládáním závislostí

Chcete-li použít vlastní DbContext, který jsme implementovali v metodách kontroleru, měli byste využít injekce závislostí. Následující fragment kódu ukazuje, jak toho lze dosáhnout.

veřejná třída ValuesController: ControllerBase

    {

soukromý CustomContext dbContext;

public ValuesController (CustomContext customContext)

        {

dbContext = customContext;

        }

// Jiné metody

    }

A to je vše, co musíte udělat. Nyní můžete využít instanci třídy CustomContext třídy v metodách kontroleru k provádění operací CRUD.

DbContext je koncepčně jako ObjectContext. DbContext, který představuje kombinaci jednotky práce a návrhových vzorů úložiště, je zodpovědný za jakoukoli interakci mezi aplikací a používanou databází. V dalších příspěvcích se zde budu zabývat dalšími aspekty Entity Framework Core.

$config[zx-auto] not found$config[zx-overlay] not found