Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 22846|Odpowiedź: 0

[.NET Core] 【Praktyczna walka】ASP.NET Wprowadzający tutorial Entity Framework Core

[Skopiuj link]
Opublikowano 06.05.2019 15:38:54 | | | |
Entity Framework (EF) Core to lekka, rozszerzalna, otwartoźródłowa i wieloplatformowa wersja popularnej technologii dostępu do danych Entity Framework.

EF Core może być używany jako mapper obiektowo-relacyjny (O/RM), dzięki czemu programiści .NET mogą pracować z bazami danych z obiektami .NET i nie musieć często zapisywać większości kodu dostępu do danych.

Dostawca bazy danych:Logowanie do linku jest widoczne.

Środowisko użyte w tym artykule:

  • Otwarte Narzędzia: VS 2017
  • Wersja dotnet: 2.1.301
  • Baza danych: SQL Sever 2012


Stwórz projekt



1: BaiDuPan.WebUI to ASP.NET do tworzenia podstawowej aplikacji webowej;



2: BaiDuPan.DomainModel służy do tworzenia biblioteki klas (.NET Core);

Dodaj referencję do rdzenia Entity Framework

Opracowane w VS2017. Projekt NET Framework, dodając ef 6, możesz dodać go bezpośrednio, klikając prawym przyciskiem myszy na projekt, jak pokazano na poniższym rysunku:



Jednak rdzeni EF nie można dodawać w powyższy sposób.

Polecenie PM:


Zgodnie z powyższym porządkiem,Program automatycznie dodaje wymagane pakiety zależnościNie ma potrzeby dodawania pakietu Microsoft.EntityFrameworkCore.

Dodaj modele kontekstowe i entity

Modele filmowe:


Kontekst bazy danych PanDb:

Klasa startowa, która dodaje zastrzyk kontekstu bazy danych (Tutaj musisz dodać referencję do DomainModel do interfejsu WebUI):


Powyższy kod wymaga od projektu odniesienia do Microsoft.EntityFrameworkCore.SqlServer, ale BaiDuPan.WebUI nie musi odwoływać się do Microsoft.EntityFrameworkCore.SqlServer, dlaczego nie jest zgłaszany jako błąd?

Microsoft.AspNetCore.App pakiet zawiera wszystkie funkcje ASP.NET Core 2.1 i nowszych oraz Entity Framework Core 2.1 i nowszych. Domyślne szablony projektów dla ASP.NET Core 2.1 i późniejszych korzystają z tego pakietu. Microsoft.AspNetCore.App pakiety są zalecane dla aplikacji z ASP.NET Core 2.1 i nowszymi oraz Entity Framework Core 2.1 i nowszymi.


appsettings.json Konfiguruj ciąg połączeń bazy danych:


Spróbuj rozpocząć projekt z następującym błędem:

Błąd NU1107 wykrywa konflikt wersji w Microsoft.EntityFrameworkCore. Bezpośrednie odniesienie do pakietu z projektu rozwiązuje ten 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       

Powodem jest konflikt wersji między tymi dwoma projektami, spróbuj zainstalować wyższą wersję rdzenia ef w BaiDuPan. WebUI, nowy błąd wygląda następująco:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4
  POBIERZhttps://api.nuget.org/v3/registr ... qlserver/index.json
  PAMIĘĆ PODRĘCZNAhttps://api.nuget.org/v3/registr ... qlserver/index.json
Przywracam pakiet 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: Wykryto konflikt wersji w Microsoft.EntityFrameworkCore. Bezpośrednie odniesienie do pakietu z projektu rozwiązuje ten 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).
Linia lokalizacji: 1 Znak: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecificed: (:) [Install-Package], wyjątek
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Pakiet instalacyjny: Przywrócenie pakietu zakończyło się niepowodzeniem. Cofanie zmian w pakiecie "BaiDuPan.WebUI".
Linia lokalizacji: 1 Znak: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecificed: (:) [Install-Package], wyjątek
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Czas przyjazdu: 00:00:01.4208784
PM>



Co robić? Rozwiązanie jest następujące:

Downgrade, projekt BaiDuPan.WebUI odnosi się do Microsoft.EntityFrameworkCore 2.1.1, więc ponownie wykonujemy polecenie nuget w projekcie BaiDuPan.DomainModel w następujący sposób:

Dzięki temu gwarantujemy, że wszystkie projekty mają tę samą wersję EF Core.

Zainicjalizuj bazę danych

Baza danych i tabela zostały pomyślnie utworzone, jak pokazano na poniższym obrazku:



Dodaj kontroler MovieController

Kod jest następujący:

Metoda Index polega na zapytaniu wszystkich danych w tabeli Movie w bazie danych, a metoda Create polega na dodawaniu nowych danych, spróbujmy dodać fragment danych i poprosić o niego listonosza, jak pokazano na poniższym rysunku:

Logowanie do linku jest widoczne.Prośba POST


Program był w stanie działać płynnie, nie stosowano żadnych wyjątków, co dowodzi, że wstawienie zakończyło się sukcesem i próbowano uzyskać dostęp:Logowanie do linku jest widoczne.Zapytaj wszystkie dane, jak pokazano na poniższym rysunku:



Jeśli chodzi o modyfikacje i usunięcia, to oczywiste!

Zasoby:

Rdzeń Entity Framework:Logowanie do linku jest widoczne.

ASP.NET Rdzeń:Logowanie do linku jest widoczne.

(Koniec)


Wynik

Liczba uczestników1MB+1 przyczynić się+1 Zapaść powód
Admin + 1 + 1 Bardzo potężne!

Zobacz wszystkie oceny





Poprzedni:Czy są jacyś mistrzowie?
Następny:Metoda separacji ciągów przecinków
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com