Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 22846|Odpověď: 0

[.NET Core] 【Praktický boj】ASP.NET Úvodní tutoriál Entity Framework Core

[Kopírovat odkaz]
Zveřejněno 06.05.2019 15:38:54 | | | |
Entity Framework (EF) Core je lehká, rozšiřitelná, open-source a multiplatformní verze populární technologie přístupu k datům Entity Framework.

EF Core lze použít jako objektově relační mapovač (O/RM), takže vývojáři .NET mohou pracovat s databázemi s .NET objekty, takže nemusí často psát většinu kódu pro přístup k datům.

Poskytovatel databáze:Přihlášení k hypertextovému odkazu je viditelné.

Prostředí použité v tomto článku:

  • Otevřené nástroje: VS 2017
  • Dotnet verze: 2.1.301
  • Databáze: SQL Sever 2012


Vytvořte projekt



1: BaiDuPan.WebUI je ASP.NET pro vytvoření základní webové aplikace;



2: BaiDuPan.DomainModel slouží k vytvoření knihovny tříd (.NET Core);

Přidat referenci na jádro Entity Framework

Vyvinuto ve vs2017. Projekt NET Framework, při přidání ef 6 jej můžete přidat přímo kliknutím pravým tlačítkem na projekt, jak je vidět na obrázku níže:



EF jádra však nelze přidávat výše uvedeným způsobem.

PM příkaz:


Podle výše uvedeného pořadí,Program automaticky přidává požadované balíčky závislostíTakže není potřeba přidávat balíček Microsoft.EntityFrameworkCore.

Přidejte modely kontextu a entit

Filmové modely:


Kontext databáze PanDb:

Startup class, který přidává injekci závislosti na databázi (Zde je potřeba přidat odkaz na DomainModel do WebUI):


Výše uvedený kód vyžaduje, aby projekt odkazoval na Microsoft.EntityFrameworkCore.SqlServer, ale BaiDuPan.WebUI nemusí odkazovat na Microsoft.EntityFrameworkCore.SqlServer, proč není hlášen jako chyba?

Microsoft.AspNetCore.App balíček obsahuje všechny funkce ASP.NET Core 2.1 a novějších a Entity Framework Core 2.1 a novějších. Výchozí šablony projektů pro ASP.NET Core 2.1 a novějších používají tento balíček. Microsoft.AspNetCore.App balíčky jsou doporučovány pro aplikace s ASP.NET Core 2.1 a novějšími a Entity Framework Core 2.1 a novějšími.


appsettings.json Konfigurujte řetězec spojení databáze:


Zkuste začít projekt s následující chybou:

Chyba NU1107 detekuje konflikt verzí v Microsoft.EntityFrameworkCore. Odkazování na balíček přímo z projektu tento problém řeší.
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       

Důvodem je, že mezi těmito dvěma projekty je konflikt verzí, zkuste nainstalovat vyšší verzi ef core do BaiDuPan.WebUI, nová chyba je následující:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4
  DOSTAThttps://api.nuget.org/v3/registr ... qlserver/index.json
  CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json
Vrácení balíčku 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 已解决。
Install-Package: NU1107: Zjištěn konflikt verzí v Microsoft.EntityFrameworkCore. Odkazování na balíček přímo z projektu tento problém řeší.
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).
Řádek lokace: 1 znak: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecificed: (:) [Install-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Install-Package: Obnovení balíčku selhalo. Vrácení zpět změn balíčků pro "BaiDuPan.WebUI".
Řádek lokace: 1 znak: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecificed: (:) [Install-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Čas před letem: 00:00:01.4208784
PM>



Co dělat? Řešení je následující:

Downgrade, projekt BaiDuPan.WebUI odkazuje na Microsoft.EntityFrameworkCore 2.1.1, takže příkaz nuget znovu spustíme v projektu BaiDuPan.DomainModel následovně:

Tímto způsobem garantujeme, že všechny projekty mají stejnou verzi EF Core.

Inicializace databáze

Databáze a tabulka jsou úspěšně vytvořeny, jak je znázorněno na následujícím obrázku:



Přidejte ovladač MovieController

Kód je následující:

Metoda Index spočívá v dotazování všech dat v databázové tabulce Movie a metoda Create slouží k přidání nových dat, zkusme přidat kus dat a požádat ho pošťákem, jak je ukázáno na obrázku níže:

Přihlášení k hypertextovému odkazu je viditelné.Žádost o POST


Program byl schopen provádět hladce, nebyly vyhozeny žádné výjimky, což dokazuje, že vložení bylo úspěšné, a pokus o přístup:Přihlášení k hypertextovému odkazu je viditelné.Dotazujte se na všechna data, jak je znázorněno na obrázku níže:



Co se týče úprav a mazání, to je samozřejmé!

Prostředky:

Jádro entity Framework:Přihlášení k hypertextovému odkazu je viditelné.

ASP.NET Jádro:Přihlášení k hypertextovému odkazu je viditelné.

(Konec)


Partitura

Počet účastníků1MB+1 přispět+1 Zhroucení důvod
Admin + 1 + 1 Velmi silné!

Zobrazit všechna hodnocení





Předchozí:Existují nějací magisteri?
Další:Metoda oddělení řetězců s čárkami
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com