Az Entity Framework (EF) Core egy könnyű, bővíthető, nyílt forráskódú és platformos változata a népszerű Entity Framework adathozzáférési technológiának.
Az EF Core használható objektum-relációs leképezőként (O/RM), így a .NET fejlesztők az .NET objektumokkal rendelkező adatbázisokkal dolgozhatnak, így nem kell gyakran írniuk a legtöbb adathozzáférési kódot.
Adatbázis-szolgáltató:A hiperlink bejelentkezés látható.
A cikkben használt környezet:
- Open Tools: VS 2017
- dotNet verzió: 2.1.301
- Adatbázis: SQL Sever 2012
Készíts egy projektet
1: A BaiDuPan.WebUI egy ASP.NET egy Core webalkalmazás létrehozására;
2: A BaiDuPan.DomainModel egy osztálykönyvtár (.NET Core) létrehozása szükséges;
Entitás keretrendszer maghivatkozás hozzáadása
Fejlesztettem a vs2017-gyel. NET Framework projekt, amikor hozzáadod az EF 6-ot, közvetlenül hozzáadhatod a projekt jobb gombján történő kattintással, ahogy az alábbi ábrán látható:
Azonban EF magokat nem lehet ilyen módon hozzáadni.
PM parancs:
A fenti sorrend szerint,A program automatikusan hozzáadja a szükséges függőségi csomagokatTehát nincs szükség a Microsoft.EntityFrameworkCore csomag hozzáadására.
Kontextus és entitás modellek hozzáadása
Filmmodellek:
PanDb adatbázis kontextus:
Startup class, amely adatbázis-kontextusfüggőség infecskendezést ad hozzá (Itt egy DomainModel hivatkozást kell hozzáadni a WebUI-hoz):
A fenti kód megköveteli, hogy a projekt a Microsoft.EntityFrameworkCore.SqlServer hivatkozást használja, de a BaiDuPan.WebUI-nak nem kell hivatkoznia a Microsoft.EntityFrameworkCore.SqlServer címre, miért nem jelent hibát?
Microsoft.AspNetCore.App csomag tartalmazza a ASP.NET Core 2.1 és újabb verziók, valamint az Entity Framework Core 2.1 és újabb verziók összes funkcióját. A ASP.NET Core 2.1 és későbbi verziók alapértelmezett projektsablonjai ezt a csomagot használják. Microsoft.AspNetCore.App csomagokat ajánlottak ASP.NET Core 2.1 és újabb verziókkal, valamint az Entity Framework Core 2.1 vagy újabb verziókkal rendelkező alkalmazásokhoz.
appsettings.json Konfiguráld az adatbázis-kapcsolati stringet:
Próbáld meg a következő hibával kezdeni a projektet:
A NU1107 hiba verzióütközést észlel a Microsoft.EntityFrameworkCore fájlban. A csomag közvetlen projektből való hivatkozása megoldja ezt a problémát. 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 Ennek oka, hogy verzióellentét van a két projekt között, próbálj meg egy magasabb szintű EF Core telepítést a BaiDuPan.WebUI-n, az új hiba a következő:
PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4 MENJhttps://api.nuget.org/v3/registr ... qlserver/index.json CACHEhttps://api.nuget.org/v3/registr ... qlserver/index.json A C:\Users\itsvse_pc\Source\Repos\baidupan\BaiDuPan.WebUI\BaiDuPan.WebUI.csproj csomagjának visszaállítása...
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: Verzióütközés észlelve a Microsoft.EntityFrameworkCore fájlban. A csomag közvetlen projektből való hivatkozása megoldja ezt a problémát. 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). Helyszínsor: 1 Karakterek: 1 + Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Kivétel + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
Install-Package: Csomag visszaállítása sikertelen. Csomagváltozások visszaállítása a "BaiDuPan.WebUI" esetében. Helyszínsor: 1 Karakterek: 1 + Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Kivétel + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
Időpont: 00:00:01.4208784 Privát mesélő>
Mit tegyek? A megoldás a következő:
Lefelé a BaiDuPan.WebUI projekt a Microsoft.EntityFrameworkCore 2.1.1-re hivatkozik, így a nuget parancsot újra végrehajtjuk a BaiDuPan.DomainModel projektben a következőként:
Így garantáljuk, hogy minden projektnek ugyanaz az EF Core verziója van.
Inicializálni az adatbázist
Az adatbázis és a tábla sikeresen létrejött, ahogy az alábbi képen látható:
Add hozzá a MovieController vezérlőt
A kódex a következő:
Az Index módszer az adatbázis Movie táblájában található összes adatot lekérdezi, a Létrehozás módszer pedig új adatok hozzáadása, próbáljunk meg egy adatot hozzáadni, és kérjük postánál, ahogy az alábbi ábrán látható:
A hiperlink bejelentkezés látható.POST kérés
A program zökkenőmentesen működött, kivételek nem voltak, bizonyítva, hogy a behelyezés sikeres volt, és megpróbálták megszerezni a hozzáférést:A hiperlink bejelentkezés látható.Kérdezze le az összes adatot, ahogy az alábbi ábrán látható:
Ami a módosításokat és törléseket illeti, ez magától értetődő!
Erőforrások:
Entity Framework Core:A hiperlink bejelentkezés látható.
ASP.NET Mag:A hiperlink bejelentkezés látható.
(Vége)
|