Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 22846|Svar: 0

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

[Kopiera länk]
Publicerad på 2019-05-06 15:38:54 | | | |
Entity Framework (EF) Core är en lättviktig, utbyggbar, öppen källkod och plattformsoberoende version av den populära dataåtkomstteknologin Entity Framework.

EF Core kan användas som en objektrelationell mappare (O/RM) så att .NET-utvecklare kan arbeta med databaser med .NET-objekt så att de inte behöver skriva större delen av dataåtkomstkoden ofta.

Databasleverantör:Inloggningen med hyperlänken är synlig.

Miljön som används i denna artikel:

  • Öppna verktyg: VS 2017
  • dotnet-version: 2.1.301
  • Databas: SQL Sever 2012


Skapa ett projekt



1: BaiDuPan.WebUI är ett ASP.NET för att skapa en kärnwebbapplikation;



2: BaiDuPan.DomainModel är för att skapa ett klassbibliotek (.NET Core);

Lägg till en Entity Framework Core-referens

Utvecklad med vs2017. NET Framework-projektet, när du lägger till ef 6 kan du lägga till det direkt genom att högerklicka på projektet, som visas i figuren nedan:



EF-kärnor kan dock inte läggas till på ovanstående sätt.

PM-kommando:


Enligt ovanstående ordning,Programmet lägger automatiskt till de nödvändiga beroendepaketenSå det finns inget behov av att lägga till paketet Microsoft.EntityFrameworkCore.

Lägg till kontext- och entitetsmodeller

Filmmodeller:


PanDb-databasens kontext:

Startklass, som lägger till databaskontextberoendeinjektion (Här behöver du lägga till en DomainModel-referens i WebUI):


Ovanstående kod kräver att projektet refererar till Microsoft.EntityFrameworkCore.SqlServer, men BaiDuPan.WebUI behöver inte referera till Microsoft.EntityFrameworkCore.SqlServer, varför rapporteras det inte ett fel?

Microsoft.AspNetCore.App paket innehåller alla funktioner från ASP.NET Core 2.1 och senare samt Entity Framework Core 2.1 och senare. Standardprojektmallar för ASP.NET Core 2.1 och senare använder detta paket. Microsoft.AspNetCore.App paket rekommenderas för applikationer med ASP.NET Core 2.1 och senare samt Entity Framework Core 2.1 och senare.


appsettings.json Konfigurera databasanslutningssträngen:


Försök starta projektet med följande fel:

Fel NU1107 upptäcker en versionskonflikt i Microsoft.EntityFrameworkCore. Att referera till paketet direkt från projektet löser detta 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       

Anledningen är att det finns en versionskonflikt mellan de två projekten, försök installera en högre version av ef core i BaiDuPan.WebUI, det nya felet är följande:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4
  GÅhttps://api.nuget.org/v3/registr ... qlserver/index.json
  CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json
Återställer paketet 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 已解决。
Installationspaket: NU1107: Versionskonflikt upptäckt i Microsoft.EntityFrameworkCore. Att referera till paketet direkt från projektet löser detta 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).
Platsrad: 1 tecken: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + KategoriInfo : Ej specificerad: (:) [Installera-paket], undantag
    + FullQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Installera-Paket: Paketåterställning misslyckades. Rullar tillbaka paketändringar för "BaiDuPan.WebUI".
Platsrad: 1 tecken: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + KategoriInfo : Ej specificerad: (:) [Installera-paket], undantag
    + FullQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Tid Ap: 00:00:01.4208784
PM>



Vad ska man göra? Lösningen är följande:

Nedgradering, BaiDuPan.WebUI-projektet refererar till Microsoft.EntityFrameworkCore 2.1.1, så vi kör nuget-kommandot igen i BaiDuPan.DomainModel-projektet, enligt följande:

På så sätt garanterar vi att alla projekt har samma EF Core-version.

Initiera databasen

Databasen och tabellen skapas framgångsrikt som visas i följande bild:



Lägg till MovieController-kontrollern

Koden är följande:

Indexmetoden är att fråga all data i databasens filmtabell, och Create-metoden är att lägga till ny data, låt oss försöka lägga till en databit och begära den med postbudet, som visas i figuren nedan:

Inloggningen med hyperlänken är synlig.POST-förfrågan


Programmet kunde köras smidigt, inga undantag kastades, vilket bevisade att insättningen lyckades, och åtkomsten försöktes:Inloggningen med hyperlänken är synlig.Sök i all data som visas i figuren nedan:



När det gäller modifieringar och borttagningar är det självklart!

Resurser:

Kärna i Entity Framework:Inloggningen med hyperlänken är synlig.

ASP.NET Kärna:Inloggningen med hyperlänken är synlig.

(Slut)


Tjog

Antal deltagare1MB+1 bidra+1 Kollaps förnuft
Admin + 1 + 1 Mycket kraftfullt!

Se alla betyg





Föregående:Finns det några masterutbildningar?
Nästa:Metoden för kommaseparationssträngar
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com