Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 22846|Antwoord: 0

[.NET Core] 【Practical Combat】ASP.NET Core's Entity Framework Core introductietutorial

[Link kopiëren]
Geplaatst op 06-05-2019 15:38:54 | | | |
Entity Framework (EF) Core is een lichtgewicht, uitbreidbare, open-source en cross-platform versie van de populaire Entity Framework data-toegangstechnologie.

EF Core kan worden gebruikt als een object-relationele mapper (O/RM), zodat .NET-ontwikkelaars met databases met .NET-objecten kunnen werken, zodat ze niet vaak het grootste deel van de data-toegangscode hoeven te schrijven.

Databaseprovider:De hyperlink-login is zichtbaar.

De omgeving die in dit artikel wordt gebruikt:

  • Open Tools: VS 2017
  • DotNet versie: 2.1.301
  • Database: SQL Sever 2012


Maak een project aan



1: BaiDuPan.WebUI is een ASP.NET om een Core webapplicatie te maken;



2: BaiDuPan.DomainModel is bedoeld om een klassebibliotheek te creëren (.NET Core);

Voeg een Entity Framework Core-referentie toe

Ontwikkeld met vs2017. NET Framework-project, bij het toevoegen van ef 6 kun je het direct toevoegen door met de rechtermuisknop op het project te klikken, zoals te zien is in de onderstaande figuur:



EF-kernen kunnen echter niet op bovenstaande manier worden toegevoegd.

PM-commando:


Volgens bovenstaande volgorde,Het programma voegt automatisch de benodigde afhankelijkheidspakketten toeDus het is niet nodig om het Microsoft.EntityFrameworkCore-pakket toe te voegen.

Voeg context- en entiteitsmodellen toe

Filmmodellen:


PanDb-databasecontext:

Startup-klasse, die databasecontextafhankelijkheidsinjectie toevoegt (Hier moet je een DomainModel-referentie toevoegen aan de WebUI):


De bovenstaande code vereist dat het project naar Microsoft.EntityFrameworkCore.SqlServer verwijst, maar BaiDuPan.WebUI hoeft Microsoft.EntityFrameworkCore.SqlServer niet te verwijzen, waarom wordt er dan geen foutmelding gemeld?

Microsoft.AspNetCore.App pakket bevat alle functies van ASP.NET Core 2.1 en later en Entity Framework Core 2.1 en later. Standaard projectsjablonen voor ASP.NET Core 2.1 en later gebruiken dit pakket. Microsoft.AspNetCore.App pakketten worden aanbevolen voor applicaties met ASP.NET Core 2.1 en later en Entity Framework Core 2.1 en later.


appsettings.json Configureer de databaseverbindingsstring:


Probeer het project te starten met de volgende fout:

Fout NU1107 detecteert een versieconflict in Microsoft.EntityFrameworkCore. Het direct verwijzen naar het pakket vanuit het project lost dit probleem op.
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       

De reden is dat er een versieconflict is tussen de twee projecten; probeer een hogere versie van ef core te installeren in BaiDuPan.WebUI, de nieuwe fout is als volgt:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Versie 2.2.4
  TOEVOEGENhttps://api.nuget.org/v3/registr ... qlserver/index.json
  CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json
Het pakket van 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 已解决。
Installatiepakket: NU1107: Versieconflict gedetecteerd in Microsoft.EntityFrameworkCore. Het direct verwijzen naar het pakket vanuit het project lost dit probleem op.
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).
Locatielijn: 1 Tekens: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategorieInfo : NietGespecificeerd: (:) [Install-Package], Uitzondering
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Install-Package: Pakketherstel mislukte. Pakketwijzigingen terugdraaien voor "BaiDuPan.WebUI".
Locatielijn: 1 Tekens: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategorieInfo : NietGespecificeerd: (:) [Install-Package], Uitzondering
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Tijd geaart: 00:00:01.4208784
PM>



Wat te doen? De oplossing is als volgt:

Downgrade, het BaiDuPan.WebUI-project verwijst naar Microsoft.EntityFrameworkCore 2.1.1, dus voeren we het nuget-commando opnieuw uit in het BaiDuPan.DomainModel-project, als volgt:

Op deze manier garanderen we dat alle projecten dezelfde EF Core-versie hebben.

Initialiseer de database

De database en tabel zijn succesvol aangemaakt zoals te zien is in de volgende afbeelding:



Voeg de MovieController-controller toe

De code is als volgt:

De Index-methode is om alle gegevens in de database Movie-tabel op te vragen, en de Create-methode is om nieuwe data toe te voegen; laten we proberen een stuk data toe te voegen en dit aan postbode op te vragen, zoals te zien is in de onderstaande figuur:

De hyperlink-login is zichtbaar.POST-verzoek


Het programma kon soepel uitvoeren, er werden geen uitzonderingen gegooid, wat bewees dat de insertie succesvol was, en de toegang werd geprobeerd:De hyperlink-login is zichtbaar.Zoek alle gegevens op zoals weergegeven in de onderstaande figuur:



Wat betreft aanpassingen en verwijderingen, spreekt het voor zich!

Weg:

Kern van het Entity Framework:De hyperlink-login is zichtbaar.

ASP.NET Kern:De hyperlink-login is zichtbaar.

(Einde)


Partituur

Aantal deelnemers1MB+1 bijdragen+1 Instorting reden
admin + 1 + 1 Heel krachtig!

Bekijk alle beoordelingen





Vorig:Zijn er masters?
Volgend:Methode voor komma-scheidingsstrings
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com