Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 22846|Svare: 0

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

[Kopier lenke]
Publisert på 06.05.2019 15:38:54 | | | |
Entity Framework (EF) Core er en lettvekts, utvidbar, åpen kildekode og plattformuavhengig versjon av den populære datatilgangsteknologien Entity Framework.

EF Core kan brukes som en objekt-relasjonell mapper (O/RM) slik at .NET-utviklere kan jobbe med databaser med .NET-objekter, slik at de slipper å skrive mesteparten av datakoden ofte.

Databaseleverandør:Innloggingen med hyperkoblingen er synlig.

Miljøet som brukes i denne artikkelen:

  • Åpne verktøy: VS 2017
  • dotnet-versjon: 2.1.301
  • Database: SQL Sever 2012


Lag et prosjekt



1: BaiDuPan.WebUI er en ASP.NET for å lage en kjerne-webapplikasjon;



2: BaiDuPan.DomainModel er for å opprette et klassebibliotek (.NET Core);

Legg til en Entity Framework Core-referanse

Utviklet med vs2017. NET Framework-prosjektet, når du legger til ef 6, kan du legge det til direkte ved å høyreklikke på prosjektet, som vist i figuren nedenfor:



EF-kjerner kan imidlertid ikke legges til på den ovennevnte måten.

PM-kommando:


Etter ovennevnte rekkefølge,Programmet legger automatisk til de nødvendige avhengighetspakkeneSå det er ikke nødvendig å legge til Microsoft.EntityFrameworkCore-pakken.

Legg til kontekst- og entitetsmodeller

Filmmodeller:


Kontekst for PanDb-databasen:

Oppstartsklasse, som legger til databasekontekstavhengighetsinjeksjon (Her må du legge til en DomainModel-referanse i WebUI):


Koden ovenfor krever at prosjektet refererer til Microsoft.EntityFrameworkCore.SqlServer, men BaiDuPan.WebUI trenger ikke å referere til Microsoft.EntityFrameworkCore.SqlServer, hvorfor rapporteres det ikke en feil?

Microsoft.AspNetCore.App pakken inkluderer alle funksjonene fra ASP.NET Core 2.1 og nyere samt Entity Framework Core 2.1 og nyere. Standard prosjektmaler for ASP.NET Core 2.1 og senere bruker denne pakken. Microsoft.AspNetCore.App pakker anbefales for applikasjoner med ASP.NET Core 2.1 og nyere samt Entity Framework Core 2.1 og nyere.


appsettings.json Konfigurer databaseforbindelsesstrengen:


Prøv å starte prosjektet med følgende feil:

Feil NU1107 oppdager en versjonskonflikt i Microsoft.EntityFrameworkCore. Å referere til pakken direkte fra prosjektet løser dette problemet.
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       

Årsaken er at det er en versjonskonflikt mellom de to prosjektene, prøv å installere en høyere versjon av ef core i BaiDuPan.WebUI, den nye feilen er som følger:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -versjon 2.2.4
  FÅ TAKhttps://api.nuget.org/v3/registr ... qlserver/index.json
  CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json
Tilbakestiller pakken til 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 已解决。
Installasjonspakke: NU1107: Versjonskonflikt oppdaget i Microsoft.EntityFrameworkCore. Å referere til pakken direkte fra prosjektet løser dette problemet.
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).
Lokasjonslinje: 1 Tegn: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -versjon 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + KategoriInfo : IkkeSpesifisert: (:) [Installer-Pakke], Unntak
    + FullQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Install-Package: Pakkegjenoppretting mislyktes. Ruller tilbake pakkeendringer for "BaiDuPan.WebUI".
Lokasjonslinje: 1 Tegn: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -versjon 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + KategoriInfo : IkkeSpesifisert: (:) [Installer-Pakke], Unntak
    + FullQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Ap: 00:00:01.4208784
PM>



Hva skal jeg gjøre? Løsningen er som følger:

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

På denne måten garanterer vi at alle prosjekter har samme EF Core-versjon.

Initialiser databasen

Databasen og tabellen opprettes vellykket som vist i følgende bilde:



Legg til MovieController-kontrolleren

Koden er som følger:

Indeksmetoden er å spørre alle dataene i databasens filmtabell, og Create-metoden er å legge til nye data, la oss prøve å legge til et datastykke og be om det hos postmannen, som vist i figuren under:

Innloggingen med hyperkoblingen er synlig.POST-forespørsel


Programmet kunne kjøre smidig, ingen unntak ble kastet, noe som beviste at innsettingen var vellykket, og tilgangen ble forsøkt:Innloggingen med hyperkoblingen er synlig.Søk i alle data som vist i figuren nedenfor:



Når det gjelder modifikasjoner og slettinger, sier det seg selv!

Ressurser:

Kjerne i Entity Framework:Innloggingen med hyperkoblingen er synlig.

ASP.NET Kjerne:Innloggingen med hyperkoblingen er synlig.

(Slutt)


Score

Antall deltakere1MB+1 bidra+1 Sammenbrudd grunn
Admin + 1 + 1 Veldig kraftig!

Se alle vurderinger





Foregående:Finnes det noen masterstudenter?
Neste:Metode for kommaseparasjonsstrenger
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com