Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 22846|Отговор: 0

[.NET Core] 【Практически бой】ASP.NET Въвеждащ урок на Core Entity Framework

[Копирай линк]
Публикувано в 6.05.2019 г. 15:38:54 ч. | | | |
Entity Framework (EF) Core е лека, разширяема, с отворен код и кросплатформена версия на популярната технология за достъп до данни Entity Framework.

EF Core може да се използва като обектно-релационен мапър (O/RM), така че .NET разработчиците да работят с бази данни с .NET обекти, така че да не се налага често да пишат по-голямата част от кода за достъп до данните.

Доставчик на бази данни:Входът към хиперлинк е видим.

Средата, използвана в тази статия:

  • Open Tools: VS 2017
  • Dotnet версия: 2.1.301
  • База данни: SQL Sever 2012


Създайте проект



1: BaiDuPan.WebUI е ASP.NET за създаване на Core уеб приложение;



2: BaiDuPan.DomainModel е за създаване на библиотека с класове (.NET Core);

Добавете референция за Entity Framework Core

Разработено с vs2017. Проект NET Framework, при добавяне на ef 6, можете директно да го добавите чрез десен клик върху проекта, както е показано на фигурата по-долу:



Въпреки това, EF ядра не могат да се добавят по горния начин.

Команда на PM:


По горния ред,Програмата автоматично добавя необходимите пакети за зависимостиТака че няма нужда да добавяте пакета Microsoft.EntityFrameworkCore.

Добавете модели на контекст и обекти

Филмови модели:


Контекст на базата данни PanDb:

Клас стартиране, който добавя инжектиране на зависимости от контекста на база данни (Тук трябва да добавите DomainModel препратка към WebUI):


Горният код изисква проектът да се позовава на Microsoft.EntityFrameworkCore.SqlServer, но BaiDuPan.WebUI не е необходимо да се позовава на Microsoft.EntityFrameworkCore.SqlServer, защо не се докладва грешка?

Microsoft.AspNetCore.App пакет включва всички функции на ASP.NET Core 2.1 и по-нови версии, както и на Entity Framework Core 2.1 и по-нови. Стандартните шаблони за проекти за ASP.NET Core 2.1 и по-нови използват този пакет. Microsoft.AspNetCore.App пакети се препоръчват за приложения с ASP.NET Core 2.1 и по-нови, както и Entity Framework Core 2.1 и по-нови.


appsettings.json Конфигуриране на низа за връзка с базата данни:


Опитайте да започнете проекта със следната грешка:

Грешка NU1107 открива конфликт на версии в Microsoft.EntityFrameworkCore. Препратката директно към пакета от проекта решава този проблем.
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       

Причината е, че има конфликт на версии между двата проекта, опитайте да инсталирате по-висока версия на ef core в BaiDuPan.WebUI, новата грешка е следната:

PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2.4
  ВЗЕМИ СЕhttps://api.nuget.org/v3/registr ... qlserver/index.json
  КЕШhttps://api.nuget.org/v3/registr ... qlserver/index.json
Връщане на пакета на 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 已解决。
Инсталационен пакет: NU1107: Открит конфликт на версии в Microsoft.EntityFrameworkCore. Препратката директно към пакета от проекта решава този проблем.
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).
Линия за местоположение: 1 Персонажи: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -версия 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Install-Package], Изключение
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Install-Package: Възстановяването на пакета не успя. Връщане на промените в пакета за "BaiDuPan.WebUI".
Линия за местоположение: 1 Персонажи: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -версия 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Install-Package], Изключение
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Време на приложение: 00:00:01.4208784
PM>



Какво да правя? Решението е следното:

При понижение проектът BaiDuPan.WebUI се позовава на Microsoft.EntityFrameworkCore 2.1.1, затова изпълняваме командата nuget отново в проекта BaiDuPan.DomainModel, както следва:

По този начин гарантираме, че всички проекти имат една и съща версия на EF Core.

Инициализирайте базата данни

Базата данни и таблицата са успешно създадени, както е показано на следното изображение:



Добавете контролера MovieController

Кодът е следният:

Методът Index е да заявим всички данни в Movie таблицата на базата данни, а методът Create е да добавим нови данни, нека опитаме да добавим парче данни и да го поискаме от Postman, както е показано на фигурата по-долу:

Входът към хиперлинк е видим.Заявка за POST


Програмата успя да се изпълнява гладко, без изключения, което доказва, че вмъкването е успешно, и достъпът беше опитан:Входът към хиперлинк е видим.Заявете всички данни, както е показано на фигурата по-долу:



Що се отнася до модификациите и изтриванията, това е ясно!

Ресурси:

Ядро на рамката на обекти:Входът към хиперлинк е видим.

ASP.NET Ядро:Входът към хиперлинк е видим.

(Край)


Резултат

Брой участници1MB+1 допринасям+1 Срив причина
Администратор + 1 + 1 Много мощно!

Вижте всички оценки





Предишен:Има ли магистърски програми?
Следващ:Метод на разделяне на низове със запетая
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com