Ohjelmointi

DbContextin käyttö Entity Framework Core -sovelluksessa

Microsoftin Entity Framework on avoimen lähdekoodin objektisuhdekartoitin eli ORM ADO.Net-sovellukselle, jonka avulla voit eristää sovelluksesi objektimallin datamallista. Entity Framework yksinkertaistaa sovelluksen tietojen käyttöä sallimalla sinun kirjoittaa koodin CRUD (Luo, Lue, Päivitä ja Poista) -toimintojen suorittamiseksi ilman, että sinun tarvitsee tietää, miten tietoja säilytetään taustalla olevassa tietokannassa.

DbContext toimii siltana toimialueluokkien ja tietokannan välillä. Tässä artikkelissa tutkitaan, kuinka voimme määrittää DbContextin käyttämällä DbContextOptions-ilmentymää yhteyden muodostamiseen tietokantaan ja CRUD-operaatioiden suorittamiseen Entity Framework Core -palvelun avulla.

DbContext selitti

DbContext on olennainen osa Entity Frameworkia, joka edustaa yhteysistuntoa tietokannan kanssa. Voit hyödyntää DbContextia kyselemällä tietoja entiteeteistäsi tai tallentaa entiteettisi taustalla olevaan tietokantaan. DbContext in Entity Framework Core -sovelluksella on useita tehtäviä:

  • Yhteyksien hallinta
  • Tietojen kysely tietokannasta
  • Tietojen tallentaminen tietokantaan
  • Muuta seurantaa
  • Välimuisti
  • Tapahtumien hallinta

Seuraavissa osioissa tutkitaan, miten voimme työskennellä DbContextin kanssa ASP.Net Core -sovelluksessa.

Luo ASP.Net Core -sovellus Visual Studiossa

Aloitamme luomalla ASP.Net Core -sovelluksen. Huomaa, että tässä viestissä oletetaan, että Visual Studio 2017 on jo asennettu järjestelmääsi. Jos Visual Studio 2017 ei ole asennettuna, voit ladata kopion täältä. Noudata sitten näitä ohjeita uuden ASP.Net Core -projektin luomiseksi.

  1. Käynnistä Visual Studio 2017 IDE.
  2. Valitse Tiedosto -> Uusi -> Projekti.
  3. Valitse projektimalli ASP.Net Core Web Application.
  4. Määritä projektisi nimi ja sijainti.
  5. Napsauta OK.
  6. Valitse Uusi ASP.Net Core Web -sovellus -ikkunassa .Net Core.
  7. Valitse avattavasta luettelosta ASP.Net Core 2.1.
  8. Valitse projektimalliksi ”Web API”.
  9. Ohita Ota Docker-tuki käyttöön -valintaruutu. emme käytä Dockeria täällä.
  10. Varmista, että viesti "Ei todentamista" näytetään; emme myöskään tarvitse tätä.
  11. Napsauta OK

Ja siinä se! Käytämme tätä sovellusta entiteettikehyksen ytimen tutkimiseen seuraavissa osioissa.

Luo uusi DbContext Entity Framework Core -sovellukseen

Voit luoda mukautetun kontekstiluokan laajentamalla DbContext-perusluokkaa Entity Framework Core -sovelluksessa alla olevan kuvan mukaisesti.

public class CustomContext: DbContext

    {

public CustomContext (DbContextOptions-vaihtoehdot): pohja (vaihtoehdot)

        {

        }

suojattu ohitus void OnConfiguring (DbContextOptionsBuilder optionsBuilder)

        {

// Kirjoita kontekstisi määrittämällä koodi tähän

        }

suojattu ohittaa void OnModelCreating (ModelBuilder modelBuilder)

        {

// Kirjoita koodi tähän mallin määrittämiseksi

        }

    }

Katso yllä olevaa CustomContext-luokkaa. Huomaa, että se hyväksyy viittauksen DbContextOptions-luokan ilmentymään. Tämä ilmentymä sisältää DbContextin tarvitsemat määritystiedot. Voit määrittää DbContextin myös OnConfiguring-menetelmällä. Mallin konfigurointiin käytetään OnModelCreating-menetelmää, joka hyväksyy argumenttina viitteen ModelBuilder-luokan ilmentymään.

DbContext-luokassa sinulla on yleensä entiteettien DbSet-ominaisuudet alla olevan koodinpätkän mukaisesti.

public class CustomContext: DbContext

    {

public CustomContext (DbContextOptions-vaihtoehdot): pohja (vaihtoehdot)

        {

        }

suojattu ohitus mitätön OnConfiguring (DbContextOptionsBuilder optionsBuilder)

        {

        }

suojattu ohittaa void OnModelCreating (ModelBuilder modelBuilder)

        {

        }

julkiset DbSet-kirjoittajat {get; aseta; }

julkiset DbSet-blogit {get; aseta; }

    }

Rekisteröi DbContext Entity Framework Core -ajoon

Seuraavaksi sinun on rekisteröitävä mukautettu DbContext-luokka palveluna IServiceCollectioniin Startup-luokan ConfigureServices-menetelmän kautta.

  public void ConfigureServices (IServiceCollection-palvelut)

        {

services.AddMvc (). SetCompatibilityVersion

(CompatibilityVersion.Version_2_1);

services.AddDbContext (vaihtoehdot =>

UseSqlServer

(Configuration.GetConnectionString ("TestConnection"))));

        }

Yhteysmerkkijono saadaan IConfiguration-ilmentymää käyttämällä. AddDbContext-laajennusmenetelmää käytetään rekisteröimään DbContext palveluna. Huomaa, kuinka viittausta DbContextOptionsBuilderiin käytetään DbContextOptions-määrityksiin. UseSqlServer-laajennusmenetelmää käytetään rekisteröimään SQL Server -tietokannan tarjoaja Entity Framework Core -ajoon.

Vaihtoehtoisesti voit ohittaa OnConfigure-menetelmän rekisteröidäksesi SQL Server -tietokantapalvelun alla olevan koodinpätkän mukaisesti.

suojattu ohitus void OnConfiguring (DbContextOptionsBuilder optionsBuilder)

    {

if (! optionsBuilder.IsConfigured)

        {

optionsBuilder.UseSqlServer ("TestConnection");

        }

    }

Käytä DbContext-riippuvuussyöttöä

Jos haluat käyttää mukautettua DbContextia, jonka olemme toteuttaneet ohjaimen menetelmissä, sinun on hyödynnettävä riippuvuuden injektointia. Seuraava koodinpätkä kuvaa, miten tämä voidaan saavuttaa.

public class ValuesController: ControllerBase

    {

yksityinen CustomContext dbContext;

public ValuesController (CustomContext customContext)

        {

dbContext = customContext;

        }

// Muut menetelmät

    }

Ja se on kaikki mitä sinun tarvitsee tehdä. Voit nyt hyödyntää CustomContext-luokan ilmentymää ohjaimen menetelmissä CRUD-toimintojen suorittamiseksi.

DbContext on käsitteellisesti kuin ObjectContext. DbContext edustaa työyksikön ja arkiston suunnittelumallien yhdistelmää, mikä vastaa sovelluksen ja käytetyn tietokannan välisestä vuorovaikutuksesta. Keskustelen entiteettikehyksen ydinkysymyksistä tulevissa viesteissä täällä.

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