Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 22846|Odgovoriti: 0

[.NET Core] 【Praktični boj】ASP.NET Osnovni uvodni vodič Entity Framework v Core

[Kopiraj povezavo]
Objavljeno na 6. 05. 2019 15:38:54 | | | |
Entity Framework (EF) Core je lahka, razširljiva, odprtokodna in večplatformska različica priljubljene tehnologije za dostop do podatkov Entity Framework.

EF Core se lahko uporablja kot objektno-relacijski preslikavalnik (O/RM), tako da lahko .NET razvijalci delajo z bazami podatkov z .NET objekti, tako da jim ni treba pogosto pisati večine kode za dostop do podatkov.

Ponudnik podatkovne baze:Prijava do hiperpovezave je vidna.

Okolje, uporabljeno v tem članku:

  • Odprta orodja: VS 2017
  • Dotnet različica: 2.1.301
  • Baza podatkov: SQL Sever 2012


Ustvarite projekt



1: BaiDuPan.WebUI je ASP.NET za ustvarjanje osnovne spletne aplikacije;



2: BaiDuPan.DomainModel je namenjen ustvarjanju knjižnice razredov (.NET Core);

Dodajte referenčno referenco za Entity Framework Core

Razvito z vs2017. Projekt NET Framework, ko dodajate ef 6, ga lahko dodate neposredno z desnim klikom na projekt, kot je prikazano na spodnji sliki:



Vendar pa EF jeder ni mogoče dodajati na zgoraj opisan način.

PM ukaz:


Po zgornjem vrstnem redu,Program samodejno doda potrebne pakete odvisnostiTorej ni potrebe po dodajanju paketa Microsoft.EntityFrameworkCore.

Dodajte modele konteksta in entitet

Filmski modeli:


Kontekst baze podatkov PanDb:

Razred Startup, ki doda injekcijo kontekstne odvisnosti baze podatkov (Tukaj morate dodati referenco na DomainModel v spletni vmesnik):


Zgornja koda zahteva, da projekt sklicuje na Microsoft.EntityFrameworkCore.SqlServer, medtem ko BaiDuPan.WebUI ne potrebuje sklicevanja na Microsoft.EntityFrameworkCore.SqlServer, zakaj torej ni prijavljena kot napaka?

Microsoft.AspNetCore.App paket vključuje vse funkcije ASP.NET Core 2.1 in novejših ter Entity Framework Core 2.1 in novejših. Privzete predloge projektov za ASP.NET Core 2.1 in novejše uporabljajo ta paket. Microsoft.AspNetCore.App paketi so priporočeni za aplikacije z ASP.NET Core 2.1 in novejšimi ter Entity Framework Core 2.1 in novejšimi.


appsettings.json Nastavite niz povezave z bazo podatkov:


Poskusite začeti projekt z naslednjo napako:

Napaka NU1107 zazna konflikt različic v Microsoft.EntityFrameworkCore. Neposredno sklicevanje na paket iz projekta reši ta 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       

Razlog je v konfliktu različic med obema projektoma, poskusite namestiti višjo različico ef core v BaiDuPan.WebUI, nova napaka je naslednja:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4
  DOBIhttps://api.nuget.org/v3/registr ... qlserver/index.json
  PREDPOMNILNIKhttps://api.nuget.org/v3/registr ... qlserver/index.json
Povrnitev paketa 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: Zaznan konflikt različic v Microsoft.EntityFrameworkCore. Neposredno sklicevanje na paket iz projekta reši ta 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).
Vrstica lokacije: 1 Znak: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecificed: (:) [Install-Package], izjema
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Namestitveni paket: Obnovitev paketa ni uspela. Razveljavitev sprememb paketa za "BaiDuPan.WebUI".
Vrstica lokacije: 1 Znak: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecificed: (:) [Install-Package], izjema
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Čas prihoda: 00:00:01.4208784
PM>



Kaj storiti? Rešitev je naslednja:

Downgrade, projekt BaiDuPan.WebUI se sklicuje na Microsoft.EntityFrameworkCore 2.1.1, zato ponovno izvedemo ukaz nuget v projektu BaiDuPan.DomainModel, kot sledi:

Na ta način zagotavljamo, da imajo vsi projekti enako različico EF Core.

Inicializirajte bazo podatkov

Baza podatkov in tabela sta uspešno ustvarjeni, kot je prikazano na naslednji sliki:



Dodajte krmilnik MovieController

Koda je naslednja:

Metoda Index je poizvedba po vseh podatkih v tabeli Movie v bazi podatkov, metoda Create pa za dodajanje novih podatkov, poskusimo dodati podatek in ga zahtevati pri poštarju, kot je prikazano na spodnji sliki:

Prijava do hiperpovezave je vidna.POST zahteva


Program se je lahko izvajal gladko, brez izjem, kar dokazuje, da je vstavljanje uspešno in je bil poskus dostopa:Prijava do hiperpovezave je vidna.Poizvedba vseh podatkov, kot je prikazano na spodnji sliki:



Kar zadeva spremembe in izbrise, je to samoumevno!

Sredstva:

Jedro Entity Framework:Prijava do hiperpovezave je vidna.

ASP.NET jedro:Prijava do hiperpovezave je vidna.

(Konec)


Partitura

Število udeležencev1MB+1 prispevati+1 Propad razlog
Admin + 1 + 1 Zelo močno!

Oglejte si vse ocene





Prejšnji:Ali obstajajo kakšni magistri?
Naslednji:Metoda ločevanja vejic
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com