Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 22846|Відповідь: 0

[.NET Core] 【Практичний бой】ASP.NET Вступний навчальний посібник Core Entity Framework

[Копіювати посилання]
Опубліковано 06.05.2019 15:38:54 | | | |
Entity Framework (EF) Core — це легка, розширювана, відкрита та кросплатформенна версія популярної технології доступу до даних Entity Framework.

EF Core може використовуватися як об'єктно-реляційний мапер (O/RM), щоб розробники .NET могли працювати з базами даних з об'єктами .NET, щоб їм не доводилося часто писати більшість коду доступу до даних.

Постачальник бази даних:Вхід за гіперпосиланням видно.

Середовище, використане в цій статті:

  • Відкриті інструменти: VS 2017
  • Dotnet-версія: 2.1.301
  • База даних: SQL Sever 2012


Створіть проєкт



1: BaiDuPan.WebUI — це ASP.NET для створення основного веб-додатку;



2: BaiDuPan.DomainModel — це створення бібліотеки класів (.NET Core);

Додати посилання на основне посилання на Entity Framework

Розроблено за допомогою 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 已解决。
Install-Package: 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 Database, а метод Create — для додавання нових даних, давайте спробуємо додати фрагмент даних і запросити його у Postman, як показано на рисунку нижче:

Вхід за гіперпосиланням видно.Запит POST


Програма працювала плавно, без винятків, що доводило успішність вставки, і спроба доступу була здійснена:Вхід за гіперпосиланням видно.Запитуйте всі дані, як показано на рисунку нижче:



Щодо модифікацій і видалень — це само собою зрозуміло!

Ресурси:

Ядро Структури Сутності:Вхід за гіперпосиланням видно.

ASP.NET Ядро:Вхід за гіперпосиланням видно.

(Кінець)


Забити

Кількість учасників1МБ+1 Сприяють+1 Колапс причина
Адміністратора + 1 + 1 Дуже потужно!

Переглянути всі рейтинги





Попередній:Чи є якісь магістерські програми?
Наступний:Метод розділення рядків коми
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com