Entity Framework (EF) Core on kerge, laiendatav, avatud lähtekoodiga ja platvormideülene versioon populaarsest Entity Frameworki andmejuurdepääsutehnoloogiast.
EF Core'i saab kasutada objekti-relatsioonilise kaardistajana (O/RM), et .NET arendajad saaksid töötada andmebaasidega .NET objektidega, nii et nad ei peaks enamikku andmekoodist tihti kirjutama.
Andmebaasi pakkuja:Hüperlingi sisselogimine on nähtav.
Selles artiklis kasutatud keskkond:
- Open Tools: VS 2017
- dotNet versioon: 2.1.301
- Andmebaas: SQL Sever 2012
Loo projekt
1: BaiDuPan.WebUI on ASP.NET Core veebirakenduse loomiseks;
2: BaiDuPan.DomainModel loob klassiteegi (.NET Core);
Lisa Entity Framework Core viide
Arendatud koos vs2017-ga. NET Framework projekt, kui lisad EF 6, saad selle otse lisada, klõpsates paremklõpsuga projektil, nagu alloleval joonisel näidatud:
Siiski ei saa EF-tuumasid eelmainitud viisil lisada.
PM käsk:
Ülaltoodud järjekorra järgi,Programm lisab automaatselt vajalikud sõltuvuspaketidSeega pole vaja lisada Microsoft.EntityFrameworkCore paketti.
Lisa konteksti ja üksuse mudelid
Filmimudelid:
PanDb andmebaasi kontekst:
Startup-klass, mis lisab andmebaasi konteksti sõltuvuse süstimise (Siin tuleb lisada WebUI-le DomainModeli viide):
Ülaltoodud kood nõuab, et projekt viitaks Microsoft.EntityFrameworkCore.SqlServerile, kuid BaiDuPan.WebUI ei pea viitama Microsoft.EntityFrameworkCore.SqlServerile, miks ei teatata veast?
Microsoft.AspNetCore.App pakett sisaldab kõiki ASP.NET Core 2.1 ja uuemate ning Entity Framework Core 2.1 ja uuemate versioonide funktsioone. Vaikimisi projektimallid ASP.NET Core 2.1 ja hilisemate jaoks kasutavad seda paketti. Microsoft.AspNetCore.App pakette soovitatakse rakendustele, millel on ASP.NET Core 2.1 ja uuemad ning Entity Framework Core 2.1 ja uuem.
appsettings.json Seadista andmebaasi ühendusstring:
Proovi projekti alustada järgmise veaga:
Viga NU1107 tuvastab versioonikonflikti Microsoft.EntityFrameworkCore'is. Paketi otse projektist viitamine lahendab selle probleemi. BaiDuPan.WebUI -> BaiDuPan.DomainModel -> Microsoft.EntityFrameworkCore.SqlServer 2.2.4 -> Microsoft.EntityFrameworkCore.Relational 2.2.4 -> Microsoft.EntityFrameworkCore (>= 2.2.4) BaiDuPan.WebUI -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.EntityFrameworkCore (>= 2.1.1 && < 2.2.0). BaiDuPan.WebUI C:\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\BaiDuPan.WebUI.csproj 1 Põhjus on selles, et kahe projekti vahel on versioonikonflikt, proovi paigaldada BaiDuPan.WebUI-sse kõrgem efcore'i versioon, uus viga on järgmine:
PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Versioon 2.2.4 MINEhttps://api.nuget.org/v3/registr ... qlserver/index.json CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json C:\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\BaiDuPan.WebUI.csproj paketi tagasipöördumine...
NU1608: 检测到的包版本在依赖项约束之外: Microsoft.AspNetCore.App 2.1.1 需要 Microsoft.EntityFrameworkCore.SqlServer (>= 2.1.1 && < 2.2.0),但版本 Microsoft.EntityFrameworkCore.SqlServer 2.2.4 已解决。 Install-Package: NU1107: Microsoft.EntityFrameworkCore versioonikonflikt tuvastatud. Paketi otse projektist viitamine lahendab selle probleemi. BaiDuPan.WebUI -> Microsoft.EntityFrameworkCore.SqlServer 2.2.4 -> Microsoft.EntityFrameworkCore.Relational 2.2.4 -> Microsoft.EntityFrameworkCore (>= 2.2.4) BaiDuPan.WebUI -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.EntityFrameworkCore (>= 2.1.1 && < 2.2.0). Asukoha rida: 1 Tähemärgid: 1 + Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecificified: (:) [Install-Package], Erand + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
Install-Package: Paketi taastamine ebaõnnestus. Paketi muudatuste tagasipööramine "BaiDuPan.WebUI" jaoks. Asukoha rida: 1 Tähemärgid: 1 + Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecificified: (:) [Install-Package], Erand + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
Algusaeg: 00:00:01.4208784 PM>
Mida teha? Lahendus on järgmine:
Tagasi, BaiDuPan.WebUI projekt viitab Microsoft.EntityFrameworkCore 2.1.1-le, seega käivitame nuget käsu uuesti BaiDuPan.DomainModel projektis järgmiselt:
Nii garanteerime, et kõigil projektidel on sama EF Core versioon.
Andmebaasi initsialiseerimine
Andmebaas ja tabel on edukalt loodud, nagu näidatud järgmisel pildil:
Lisa MovieController kontroller
Kood on järgmine:
Index meetod on pärida kõik andmed andmebaasi Movie tabelis ning Create meetod on lisada uusi andmeid, proovime lisada andmetüki ja taotleme seda postiljonilt, nagu alloleval joonisel näidatud:
Hüperlingi sisselogimine on nähtav.POSTI taotlus
Programm töötas sujuvalt, erandeid ei tehtud, mis tõestas sisestamise õnnestumist ja ligipääsu katsetati:Hüperlingi sisselogimine on nähtav.Küsi kõiki andmeid vastavalt allolevale joonisele:
Mis puudutab muudatusi ja kustutamisi, siis see on iseenesestmõistetav!
Ressursse:
Entity Framework Core:Hüperlingi sisselogimine on nähtav.
ASP.NET Core:Hüperlingi sisselogimine on nähtav.
(Lõpp)
|