Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 22846|Svar: 0

[.NET Core] 【Practical Combat】ASP.NET Cores Entity Framework Core introduktionsvejledning

[Kopier link]
Opslået på 06/05/2019 15.38.54 | | | |
Entity Framework (EF) Core er en letvægts, udvidelsesbar, open source og cross-platform version af den populære Entity Framework dataadgangsteknologi.

EF Core kan bruges som en objekt-relationel mapper (O/RM), så .NET-udviklere kan arbejde med databaser med .NET-objekter, så de ikke behøver at skrive det meste af dataadgangskoden ofte.

Databaseudbyder:Hyperlink-login er synlig.

Miljøet, der bruges i denne artikel:

  • Åbne værktøjer: VS 2017
  • dotnet-version: 2.1.301
  • Database: SQL Sever 2012


Opret et projekt



1: BaiDuPan.WebUI er en ASP.NET til at skabe en Core webapplikation;



2: BaiDuPan.DomainModel er til at oprette et klassebibliotek (.NET Core);

Tilføj en Entity Framework Core-reference

Udviklet med vs2017. NET Framework-projektet, når du tilføjer ef 6, kan du direkte tilføje det ved at højreklikke på projektet, som vist i figuren nedenfor:



EF-kerner kan dog ikke tilføjes på ovenstående måde.

PM-kommando:


Efter ovenstående rækkefølge,Programmet tilføjer automatisk de nødvendige afhængighedspakkerSå der er ikke behov for at tilføje Microsoft.EntityFrameworkCore-pakken.

Tilføj kontekst og entitetsmodeller

Filmmodeller:


PanDb-databasekontekst:

Startklasse, som tilføjer databasekontekstafhængighedsinjektion (Her skal du tilføje en DomainModel-reference til WebUI'en):


Ovenstående kode kræver, at projektet refererer til Microsoft.EntityFrameworkCore.SqlServer, men BaiDuPan.WebUI behøver ikke at referere til Microsoft.EntityFrameworkCore.SqlServer, hvorfor rapporteres der så ikke en fejl?

Microsoft.AspNetCore.App pakke indeholder alle funktionerne fra ASP.NET Core 2.1 og senere samt Entity Framework Core 2.1 og nyere. Standard projektskabeloner til ASP.NET Core 2.1 og senere bruger denne pakke. Microsoft.AspNetCore.App pakker anbefales til applikationer med ASP.NET Core 2.1 og senere samt Entity Framework Core 2.1 og senere.


appsettings.json Konfigurér databaseforbindelsesstrengen:


Prøv at starte projektet med følgende fejl:

Fejl NU1107 opdager en versionskonflikt i Microsoft.EntityFrameworkCore. At referere til pakken direkte fra projektet løser dette problem.
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       

Årsagen er, at der er en versionskonflikt mellem de to projekter, prøv at installere en højere version af ef core i BaiDuPan.WebUI, den nye fejl er som følger:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4
  FÅhttps://api.nuget.org/v3/registr ... qlserver/index.json
  CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json
Tilbageføring af pakken C:\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\BaiDuPan.WebUI.csproj...
NU1608: 检测到的包版本在依赖项约束之外: Microsoft.AspNetCore.App 2.1.1 需要 Microsoft.EntityFrameworkCore.SqlServer (>= 2.1.1 && < 2.2.0),但版本 Microsoft.EntityFrameworkCore.SqlServer 2.2.4 已解决。
Installationspakke: NU1107: Versionskonflikt opdaget i Microsoft.EntityFrameworkCore. At referere til pakken direkte fra projektet løser dette problem.
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).
Lokationslinje: 1 Tegn: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + KategoriInfo : IkkeSpecificeret: (:) [Install-Package], Undtagelse
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Install-Package: Pakkegendannelse mislykkedes. Tilbagerulning af pakkeændringer for "BaiDuPan.WebUI".
Lokationslinje: 1 Tegn: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + KategoriInfo : IkkeSpecificeret: (:) [Install-Package], Undtagelse
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Apred: 00:00:01.4208784
PM>



Hvad skal jeg gøre? Løsningen er som følger:

Nedgradering, BaiDuPan.WebUI-projektet refererer til Microsoft.EntityFrameworkCore 2.1.1, så vi genudfører nuget-kommandoen i BaiDuPan.DomainModel-projektet som følger:

På den måde garanterer vi, at alle projekter har den samme EF Core-version.

Initialiser databasen

Databasen og tabellen oprettes med succes som vist i følgende billede:



Tilføj MovieController-controlleren

Koden er som følger:

Index-metoden er at forespørge alle data i databasens Movie-tabel, og Create-metoden er at tilføje nye data, lad os prøve at tilføje et datastykke og anmode om det hos postbuddet, som vist i figuren nedenfor:

Hyperlink-login er synlig.POST-anmodning


Programmet kunne køre problemfrit, ingen undtagelser blev kastet, hvilket beviste, at indsættelsen var vellykket, og adgangen blev forsøgt:Hyperlink-login er synlig.Forespørg alle data som vist i figuren nedenfor:



Hvad angår ændringer og sletninger, siger det sig selv!

Ressourcer:

Entity Framework Core:Hyperlink-login er synlig.

ASP.NET Kerne:Hyperlink-login er synlig.

(Slut)


Score

Antal deltagere1MB+1 bidrage+1 Sammenbrud årsag
Admin + 1 + 1 Meget kraftfuldt!

Se alle vurderinger





Tidligere:Findes der nogle kandidater?
Næste:Komma-separationsstreng-metoden
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com