Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 22846|Odpoveď: 0

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

[Kopírovať odkaz]
Zverejnené 6. 5. 2019 15:38:54 | | | |
Entity Framework (EF) Core je ľahká, rozšíriteľná, open-source a multiplatformová verzia populárnej technológie prístupu k dátam Entity Framework.

EF Core môže byť použitý ako objektovo-relačný mapper (O/RM), aby vývojári .NET mohli pracovať s databázami s .NET objektmi, aby nemuseli často písať väčšinu kódu na prístup k dátam.

Poskytovateľ databázy:Prihlásenie na hypertextový odkaz je viditeľné.

Prostredie použité v tomto článku:

  • Otvorené nástroje: VS 2017
  • Dotnet verzia: 2.1.301
  • Databáza: SQL Sever 2012


Vytvorte projekt



1: BaiDuPan.WebUI je ASP.NET na vytvorenie jadrovej webovej aplikácie;



2: BaiDuPan.DomainModel je na vytvorenie knižnice tried (.NET Core);

Pridajte referenciu na jadro Entity Framework

Vyvinuté s vs2017. Projekt NET Framework, pri pridávaní ef 6 ho môžete pridať priamo kliknutím pravým tlačidlom na projekt, ako je znázornené na obrázku nižšie:



EF jadrá však nie je možné pridať vyššie uvedeným spôsobom.

PM príkaz:


Podľa vyššie uvedeného poradia,Program automaticky pridáva potrebné balíčky závislostíTakže nie je potrebné pridávať balík Microsoft.EntityFrameworkCore.

Pridajte modely kontextu a entít

Filmové modely:


Kontext databázy PanDb:

Trieda Startup, ktorá pridáva injekciu závislosti na databáze (Tu je potrebné pridať referenciu na DomainModel do WebUI):


Vyššie uvedený kód vyžaduje, aby projekt odkazoval na Microsoft.EntityFrameworkCore.SqlServer, ale BaiDuPan.WebUI nemusí odkazovať na Microsoft.EntityFrameworkCore.SqlServer, prečo teda nie je hlásený ako chyba?

Microsoft.AspNetCore.App balík obsahuje všetky funkcie ASP.NET Core 2.1 a novších, ako aj Entity Framework Core 2.1 a novšie. Predvolené šablóny projektov pre ASP.NET Core 2.1 a novšie používajú tento balík. Microsoft.AspNetCore.App balíky sa odporúčajú pre aplikácie s ASP.NET Core 2.1 a novšími a Entity Framework Core 2.1 a novšími.


appsettings.json Konfigurácia reťazca spojenia databázy:


Skúste začať projekt s nasledujúcou chybou:

Chyba NU1107 detekuje konflikt verzií v Microsoft.EntityFrameworkCore. Priame odkazovanie na balík z projektu tento problém rieši.
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ôvodom je, že medzi týmito dvoma projektmi je konflikt verzií, skúste nainštalovať vyššiu verziu ef core do BaiDuPan. WebUI, nová chyba je nasledovná:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4
  DOSTAŤhttps://api.nuget.org/v3/registr ... qlserver/index.json
  CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json
Vrátenie balíka 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 已解决。
Inštalačný balík: NU1107: Zistený konflikt verzií v Microsoft.EntityFrameworkCore. Priame odkazovanie na balík z projektu tento problém rieši.
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).
Linka miesta: 1 Znak: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecificed: (:) [Install-Package], výnimka
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Inštalačný balík: Obnovenie balíka zlyhalo. Vrátenie späť zmien balíkov pre "BaiDuPan.WebUI".
Linka miesta: 1 Znak: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecificed: (:) [Install-Package], výnimka
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Čas do začiatku: 00:00:01.4208784
PM>



Čo robiť? Riešenie je nasledovné:

Downgrade, projekt BaiDuPan.WebUI odkazuje na Microsoft.EntityFrameworkCore 2.1.1, takže v projekte BaiDuPan.DomainModel znovu spustíme príkaz nuget, nasledovne:

Týmto spôsobom zaručujeme, že všetky projekty majú rovnakú verziu EF Core.

Inicializujte databázu

Databáza a tabuľka sú úspešne vytvorené, ako je znázornené na nasledujúcom obrázku:



Pridajte ovládač MovieController

Kód je nasledovný:

Metóda Index spočíva v dotazovaní všetkých dát v databázovej tabuľke Movie a metóda Create je na pridávanie nových dát, skúsme pridať kus dát a požiadať ho poštárom, ako je znázornené na obrázku nižšie:

Prihlásenie na hypertextový odkaz je viditeľné.POST žiadosť


Program sa podarilo vykonať plynulo, neboli vyhodené žiadne výnimky, čo dokázalo úspešné vloženie a pokus o prístup:Prihlásenie na hypertextový odkaz je viditeľné.Dotazujte všetky údaje, ako je znázornené na obrázku nižšie:



Čo sa týka úprav a vymazaní, je to samozrejmé!

Zdroje:

Entity Framework Core:Prihlásenie na hypertextový odkaz je viditeľné.

ASP.NET Jadro:Prihlásenie na hypertextový odkaz je viditeľné.

(Koniec)


Skóre

Počet účastníkov1MB+1 prispieť+1 Kolaps dôvod
Admin + 1 + 1 Veľmi silné!

Zobraziť všetky hodnotenia





Predchádzajúci:Existujú nejakí majstri?
Budúci:Metóda oddelenia čiar
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com