Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 22846|Atbildi: 0

[.NET kodols] 【Praktiskā cīņa】ASP.NET Core Entity Framework Core ievadapmācība

[Kopēt saiti]
Publicēts 06.05.2019 15:38:54 | | | |
Entity Framework (EF) Core ir populārās Entity Framework datu piekļuves tehnoloģijas viegla, paplašināma, atvērtā koda un starpplatformu versija.

EF Core var izmantot kā objektu relāciju kartētāju (O/RM), lai .NET izstrādātāji varētu strādāt ar datu bāzēm ar .NET objektiem, lai viņiem nebūtu bieži jāraksta lielākā daļa datu piekļuves koda.

Datu bāzes nodrošinātājs:Hipersaites pieteikšanās ir redzama.

Šajā rakstā izmantotā vide:

  • Atvērtie rīki: VS 2017
  • DotNet versija: 2.1.301
  • Datu bāze: SQL Sever 2012


Projekta izveide



1: BaiDuPan.WebUI ir ASP.NET, lai izveidotu pamata tīmekļa lietojumprogrammu;



2: BaiDuPan.DomainModel ir izveidot klases bibliotēku (.NET Core);

Entītiju struktūras pamatatsauces pievienošana

Izstrādāts kopā ar vs2017. NET Framework projekts, pievienojot ef 6, to var tieši pievienot, ar peles labo pogu noklikšķinot uz projekta, kā parādīts zemāk redzamajā attēlā:



Tomēr EF serdeņus nevar pievienot iepriekš minētajā veidā.

PM komanda:


Ar iepriekš minēto rīkojumu,Programma automātiski pievieno nepieciešamās atkarības pakotnesTāpēc nav nepieciešams pievienot Microsoft.EntityFrameworkCore pakotni.

Konteksta un entītiju modeļu pievienošana

Filmu modeļi:


PanDb datu bāzes konteksts:

Startēšanas klase, kas pievieno datu bāzes konteksta atkarības injekciju (Šeit jums jāpievieno DomainModel atsauce WebUI):


Iepriekš minētais kods prasa, lai projekts atsauktos uz Microsoft.EntityFrameworkCore.SqlServer, bet BaiDuPan.WebUI nav jāatsaucas uz Microsoft.EntityFrameworkCore.SqlServer, kāpēc tas netiek ziņots par kļūdu?

Microsoft.AspNetCore.App pakotnē ir iekļautas visas ASP.NET Core 2.1 un jaunākas un Entity Framework Core 2.1 un jaunākas versijas. Noklusējuma projektu veidnes ASP.NET Core 2.1 un jaunākām versijām izmanto šo pakotni. Microsoft.AspNetCore.App pakotnes ir ieteicamas lietojumprogrammām ar ASP.NET Core 2.1 un jaunākām versijām un Entity Framework Core 2.1 un jaunākām versijām.


appsettings.json Konfigurējiet datu bāzes savienojuma virkni:


Mēģiniet sākt projektu ar šādu kļūdu:

Kļūda NU1107 atklāj versiju konfliktu programmā Microsoft.EntityFrameworkCore. Atsauce uz paketi tieši no projekta atrisina šo problēmu.
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       

Iemesls ir tāds, ka starp abiem projektiem ir versijas konflikts, mēģiniet instalēt augstāku ef core versiju BaiDuPan.WebUI, jaunā kļūda ir šāda:

PM> instalēšanas pakotne Microsoft.EntityFrameworkCore.SqlServer -versija 2.2.4
  IEGŪThttps://api.nuget.org/v3/registr ... qlserver/index.json
  KEŠATMIŅAhttps://api.nuget.org/v3/registr ... qlserver/index.json
Tiek atgriezta pakotne 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 已解决。
Instalēšanas pakotne: NU1107: Microsoft.EntityFrameworkCore konstatēts versiju konflikts. Atsauce uz paketi tieši no projekta atrisina šo problēmu.
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).
Atrašanās vietas līnija: 1 Rakstzīmes: 1
+ Instalēt pakotni Microsoft.EntityFrameworkCore.SqlServer -versija 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotNorādīts: (:) [Install-Package], Izņēmums
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Instalēšanas pakotne: pakotnes atjaunošana neizdevās. Pakotnes izmaiņu atcelšana "BaiDuPan.WebUI".
Atrašanās vietas līnija: 1 Rakstzīmes: 1
+ Instalēt pakotni Microsoft.EntityFrameworkCore.SqlServer -versija 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotNorādīts: (:) [Install-Package], Izņēmums
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Laiks apred: 00:00:01.4208784
PM>



Ko darīt? Risinājums ir šāds:

Pazemināšana, BaiDuPan.WebUI projekts atsaucas uz Microsoft.EntityFrameworkCore 2.1.1, tāpēc mēs atkārtoti izpildām nuget komandu BaiDuPan.DomainModel projektā šādi:

Tādējādi mēs garantējam, ka visiem projektiem ir vienāda EF Core versija.

Datu bāzes inicializēšana

Datu bāze un tabula ir veiksmīgi izveidota, kā parādīts šajā attēlā:



MovieController kontrollera pievienošana

Kods ir šāds:

Indeksa metode ir vaicāt visus datus datu bāzē Filmu tabula, un Izveidot metode ir pievienot jaunus datus, mēģināsim pievienot datu gabalu un pieprasīt to ar pastnieku, kā parādīts zemāk redzamajā attēlā:

Hipersaites pieteikšanās ir redzama.POST pieprasījums


Programma varēja darboties nevainojami, netika izmesti izņēmumi, pierādot, ka ievietošana bija veiksmīga, un piekļuve tika mēģināta:Hipersaites pieteikšanās ir redzama.Vaicājiet visus datus, kā parādīts zemāk redzamajā attēlā:



Kas attiecas uz izmaiņām un dzēsumiem, tas ir pats par sevi saprotams!

Resursu:

Entītiju struktūras kodols:Hipersaites pieteikšanās ir redzama.

ASP.NET kodols:Hipersaites pieteikšanās ir redzama.

(Beigas)


Vērtējums

Dalībnieku skaits1MB+1 Veicināt+1 Sakļaut iemesls
Admin + 1 + 1 Ļoti spēcīgs!

Skatīt visus vērtējumus





Iepriekšējo:Vai ir kādi meistari?
Nākamo:Komatu atdalīšanas virknes metode
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com