Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 22846|Ответ: 0

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

[Скопировать ссылку]
Опубликовано 06.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 создания основного веб-приложения;



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 -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecificified: (:) [Install-Package], Исключение
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Install-Package: Восстановление пакета не удалось. Откат изменений пакетов для «BaiDuPan.WebUI».
Линия локации: 1 Персонажи: 1
+ Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 2.2. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecificified: (:) [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 — для добавления новых данных, давайте попробуем добавить фрагмент данных и запросить его у почтальона, как показано на рисунке ниже:

Вход по гиперссылке виден.Запрос POST


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



Что касается модификаций и удалений, это само собой разумеется!

Ресурсы:

Ядро Структуры Сущности:Вход по гиперссылке виден.

ASP.NET Ядро:Вход по гиперссылке виден.

(Конец)


Счёт

Количество участников1МБ+1 способствовать+1 Коллапс причина
Администратора + 1 + 1 Очень мощно!

Смотреть все рейтинги





Предыдущий:Есть ли магистратура?
Следующий:Метод разделения строк запятой
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com