Entity Framework (EF) Core on kevyt, laajennettava, avoimen lähdekoodin ja monialustainen versio suositusta Entity Frameworkin tiedonhakuteknologiasta.
EF Corea voidaan käyttää objekti-relaatiokartoittajana (O/RM), jolloin .NET-kehittäjät voivat työskennellä .NET-objekteja sisältävien tietokantojen kanssa, jolloin heidän ei tarvitse kirjoittaa suurinta osaa datan käyttökoodista usein.
Tietokantatoimittaja:Hyperlinkin kirjautuminen on näkyvissä.
Tässä artikkelissa käytetty ympäristö:
- Open Tools: VS 2017
- dotnet-versio: 2.1.301
- Tietokanta: SQL Sever 2012
Luo projekti
1: BaiDuPan.WebUI on ASP.NET Core-verkkosovelluksen luomiseen;
2: BaiDuPan.DomainModelin tarkoituksena on luoda luokkakirjasto (.NET Core);
Lisää Entity Framework Core -viite
Kehitetty vs2017:n kanssa. NET Framework -projekti, kun lisäät ef 6:n, voit lisätä sen suoraan hiiren oikealla klikkaamalla projektia, kuten alla olevassa kuvassa näkyy:
EF-ytimiä ei kuitenkaan voi lisätä edellä mainitulla tavalla.
PM-komento:
Yllä olevalla järjestyksellä,Ohjelma lisää automaattisesti tarvittavat riippuvuuspaketitJoten Microsoft.EntityFrameworkCore-pakettia ei tarvitse lisätä.
Lisää konteksti- ja entiteettimallit
Elokuvamallit:
PanDb-tietokannan konteksti:
Startup-luokka, joka lisää tietokantakontekstin riippuvuuden injektion (Tässä sinun täytyy lisätä DomainModel-viittaus WebUI:hin):
Yllä oleva koodi vaatii projektia viittaamaan Microsoft.EntityFrameworkCore.SqlServeriin, mutta BaiDuPan.WebUI ei tarvitse viitata Microsoft.EntityFrameworkCore.SqlServeriin, miksi virheestä ei raportoida?
Microsoft.AspNetCore.App paketti sisältää kaikki ASP.NET Core 2.1 ja uudemmat sekä Entity Framework Core 2.1 ja uudemmat ominaisuudet. Oletusprojektipohjat ASP.NET Core 2.1:lle ja uudemmille versioille käyttävät tätä pakettia. Microsoft.AspNetCore.App paketteja suositellaan sovelluksiin, joissa on ASP.NET Core 2.1 ja uudemmat sekä Entity Framework Core 2.1 ja uudemmat.
appsettings.json Määritä tietokantayhteysmerkkijono:
Yritä aloittaa projekti seuraavalla virheellä:
Virhe NU1107 havaitsee versioristiriidan Microsoft.EntityFrameworkCore -tiedostossa. Viittaamalla suoraan pakettiin projektista ratkaisee tämän ongelman. 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 Syynä on se, että kahden projektin välillä on versioristiriita, yritä asentaa korkeampi versio efcoresta BaiDuPan.WebUI:hin, uusi virhe on seuraava:
PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4 MENEhttps://api.nuget.org/v3/registr ... qlserver/index.json VÄLIMUISTIhttps://api.nuget.org/v3/registr ... qlserver/index.json C:\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\BaiDuPan.WebUI.csproj paketti palautetaan...
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: Versioristiriita havaittu Microsoft.EntityFrameworkCore -tiedostossa. Viittaamalla suoraan pakettiin projektista ratkaisee tämän ongelman. 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). Sijaintirivi: 1 Merkit: 1 + Install-Package Microsoft.EntityFrameworkCore.SqlServer -versio 2.2. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Poikkeus + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
Install-Package: Paketin palautus epäonnistui. Paketin muutosten palauttaminen "BaiDuPan.WebUI":lle. Sijaintirivi: 1 Merkit: 1 + Install-Package Microsoft.EntityFrameworkCore.SqlServer -versio 2.2. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Poikkeus + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
Aloitusaika: 00:00:01.4208784 PM>
Mitä tehdä? Ratkaisu on seuraava:
Alas, BaiDuPan.WebUI-projekti viittaa Microsoft.EntityFrameworkCore 2.1.1:een, joten suoritamme nuget-komennon uudelleen BaiDuPan.DomainModel-projektissa seuraavasti:
Näin takaamme, että kaikilla projekteilla on sama EF Core -versio.
Alusta tietokanta
Tietokanta ja taulukko on onnistuneesti luotu seuraavan kuvan mukaisesti:
Lisää MovieController-ohjain
Koodi on seuraava:
Index-menetelmä on hakea kaikki tiedot tietokannan Movie-taulukosta, ja Create-menetelmä on lisätä uutta dataa, yritetään lisätä tieto ja pyytää se Postmanilta, kuten alla olevassa kuvassa näkyy:
Hyperlinkin kirjautuminen on näkyvissä.POST-pyyntö
Ohjelma pystyi toimimaan sujuvasti, poikkeuksia ei tehty, mikä todisti lisäyksen onnistuneen ja pääsyn yrittivät tehdä:Hyperlinkin kirjautuminen on näkyvissä.Kysy kaikki tiedot alla olevan kuvan mukaisesti:
Mitä tulee muokkauksiin ja poistoihin, se on itsestään selvää!
Varat:
Entity Framework Core:Hyperlinkin kirjautuminen on näkyvissä.
ASP.NET Core:Hyperlinkin kirjautuminen on näkyvissä.
(Loppu)
|