Programmēšana

Kā izmantot DbContext Entity Framework Core

Microsoft Entity Framework ir ADO.Net atvērtā pirmkoda objektu-relāciju kartētājs jeb ORM, kas palīdz jums izolēt lietojumprogrammas objekta modeli no datu modeļa. Entity Framework vienkāršo piekļuvi datiem jūsu lietojumprogrammā, ļaujot rakstīt kodu CRUD (izveide, lasīšana, atjaunināšana un dzēšana) darbību veikšanai, nezinot, kā dati tiek saglabāti pamatā esošajā datu bāzē.

DbContext darbojas kā tilts starp domēna klasēm un datu bāzi. Šajā rakstā mēs pārbaudīsim, kā mēs varam konfigurēt DbContext, izmantojot DbContextOptions gadījumu, lai izveidotu savienojumu ar datu bāzi un veiktu CRUD darbības, izmantojot Entity Framework Core nodrošinātāju.

DbContext paskaidrots

DbContext ir Entity Framework neatņemama sastāvdaļa, kas attēlo savienojuma sesiju ar datu bāzi. Varat izmantot DbContext priekšrocības, lai vaicātu datus savās entītijās vai saglabātu entītijas pamatā esošajā datu bāzē. DbContext Entity Framework Core ir vairāki pienākumi:

  • Savienojumu pārvaldība
  • Pieprasot datus no datu bāzes
  • Datu saglabāšana datu bāzē
  • Mainīt izsekošanu
  • Kešatmiņa
  • Darījumu vadība

Turpmākajās sadaļās mēs izpētīsim, kā mēs varam strādāt ar DbContext ASP.Net Core.

Visual Studio izveidojiet ASP.Net Core lietojumprogrammu

Mēs sāksim izveidot ASP.Net Core lietojumprogrammu. Ņemiet vērā, ka šajā ziņā tiek pieņemts, ka Visual Studio 2017 jau ir instalēta jūsu sistēmā. Ja jums nav instalēta Visual Studio 2017, kopiju varat lejupielādēt šeit. Pēc tam veiciet šīs darbības, lai izveidotu jaunu ASP.Net Core projektu.

  1. Palaidiet Visual Studio 2017 IDE.
  2. Noklikšķiniet uz File -> New -> Project.
  3. Atlasiet projekta veidni “ASP.Net Core Web Application”.
  4. Norādiet projekta nosaukumu un vietu.
  5. Noklikšķiniet uz Labi.
  6. Dialoglodziņā “Jauna ASP.Net Core Web Application” atlasiet .Net Core.
  7. Nolaižamajā sarakstā atlasiet ASP.Net Core 2.1.
  8. Kā projekta veidni atlasiet “Web API”.
  9. Ignorējiet izvēles rūtiņu “Iespējot Docker atbalstu”; mēs šeit neizmantosim Docker.
  10. Pārliecinieties, ka tiek parādīts ziņojums “Nav autentifikācijas”; mums tas arī nebūs vajadzīgs.
  11. Noklikšķiniet uz Labi

Un viss! Mēs izmantosim šo lietojumprogrammu, lai izpētītu Entity Framework Core turpmākajās sadaļās.

Izveidojiet jaunu DbContext Entity Framework Core

Lai izveidotu pielāgotu konteksta klasi, jums jāpaplašina DbContext bāzes klase Entity Framework Core, kā parādīts zemāk.

publiskā klase CustomContext: DbContext

    {

publiskais CustomContext (opcijas DbContextOptions): bāze (opcijas)

        {

        }

aizsargāts ignorēt spēkā neesošu OnConfiguring (DbContextOptionsBuilder optionsBuilder)

        {

// Šeit konfigurējiet kodu, lai konfigurētu kontekstu

        }

aizsargāts ignorēt spēkā neesošu OnModelCreating (ModelBuilder modelBuilder)

        {

// Lai konfigurētu modeli, šeit uzrakstiet savu kodu

        }

    }

Skatiet iepriekš klasi CustomContext. Ņemiet vērā, ka tā pieņem atsauci uz klases DbContextOptions gadījumu. Šis gadījums satur konfigurācijas informāciju, kas nepieciešama DbContext. Varat arī konfigurēt DbContext, izmantojot OnConfiguring metodi. Modeļa konfigurēšanai tiek izmantota OnModelCreating metode, kas kā argumentu pieņem atsauci uz klases ModelBuilder gadījumu.

DbContext klasē jums parasti ir objektu DbSet rekvizīti, kā parādīts zemāk esošajā koda fragmentā.

publiskā klase CustomContext: DbContext

    {

publiskais CustomContext (opcijas DbContextOptions): bāze (opcijas)

        {

        }

aizsargāts ignorēt spēkā neesošu OnConfiguring (DbContextOptionsBuilder optionsBuilder)

        {

        }

aizsargāts ignorēt spēkā neesošu OnModelCreating (ModelBuilder modelBuilder)

        {

        }

publiskie DbSet Autori {get; komplekts; }

publiskie DbSet emuāri {get; komplekts; }

    }

Reģistrējiet DbContext ar Entity Framework Core izpildlaiku

Pēc tam jums jāreģistrē pielāgotā DbContext klase kā pakalpojums IServiceCollection, izmantojot Startup klases ConfigureServices metodi.

  public void ConfigureServices (IServiceCollection pakalpojumi)

        {

services.AddMvc (). SetCompatibilityVersion

(CompatibilityVersion.Version_2_1);

pakalpojumi.AddDbContext (opcijas =>

opcijas.UseSqlServer

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

        }

Savienojuma virkne tiek iegūta, izmantojot IConfiguration gadījumu. Lai reģistrētu DbContext kā pakalpojumu, tiek izmantota paplašināšanas AddDbContext metode. Ņemiet vērā, kā atsauce uz DbContextOptionsBuilder tiek izmantota, lai konfigurētu DbContextOptions. Lai reģistrētu SQL Server datu bāzes nodrošinātāju Entity Framework Core izpildlaikā, tiek izmantota paplašinājuma UseSqlServer metode.

Varat arī ignorēt OnConfigure metodi, lai reģistrētu SQL Server datu bāzes nodrošinātāju, kā parādīts zemāk esošajā koda fragmentā.

aizsargāts ignorēt spēkā neesošu OnConfiguring (DbContextOptionsBuilder optionsBuilder)

    {

ja (! optionsBuilder.IsConfigured)

        {

optionsBuilder.UseSqlServer ("TestConnection");

        }

    }

Izmantojiet DbContext ar atkarības injekciju

Lai izmantotu pielāgoto DbContext, ko esam ieviesuši kontroliera metodēs, jums vajadzētu izmantot atkarības injekcijas priekšrocības. Šis koda fragments parāda, kā to var panākt.

public class ValuesController: ControllerBase

    {

privāts CustomContext dbContext;

public ValuesController (CustomContext customContext)

        {

dbContext = customContext;

        }

// Citas metodes

    }

Un tas ir viss, kas jums jādara. Tagad CRUD darbību veikšanai kontroliera metodēs varat izmantot CustomContext klases instanci.

DbContext konceptuāli ir līdzīgs ObjectContext. Pārstāvot darba vienības un krātuves dizaina modeļu kombināciju, DbContext ir atbildīgs par jebkuru mijiedarbību starp lietojumprogrammu un izmantoto datu bāzi. Turpmākajos ierakstos es šeit apspriedīšu Entity Framework Core aspektus.

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