приложение asp net с базой данных

ASP NET.MVC Урок 3. Работа с БД

Цель урока: Изучить основные принципы работы с базой данных. Краткое описание реляционной модели баз данных. Работа с базой данных (создание таблиц, связей в VS 2012). Команды INSERT, UPDATE, DELETE, SELECT. Использование LinqToSql и Linq. Создание репозитария, IRepository, SqlRepository.

Что такое БД
Таблицы

Это таблица:
приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

Связи
Создание простой схемы в БД

Создадим БД в VS 2012:

приложение asp net с базой данных. 149efdc2641aeda850e3f375869804fd. приложение asp net с базой данных фото. приложение asp net с базой данных-149efdc2641aeda850e3f375869804fd. картинка приложение asp net с базой данных. картинка 149efdc2641aeda850e3f375869804fd.

Назовем её LessonProject, и добавим 3 таблицы Role User и UserRole.
Создадим таблицу Role:

приложение asp net с базой данных. 4556f5f72ce57b28359c29e10ee9b4fd. приложение asp net с базой данных фото. приложение asp net с базой данных-4556f5f72ce57b28359c29e10ee9b4fd. картинка приложение asp net с базой данных. картинка 4556f5f72ce57b28359c29e10ee9b4fd.

приложение asp net с базой данных. 9195dbc022a87fa469104c26f9b2ba3e. приложение asp net с базой данных фото. приложение asp net с базой данных-9195dbc022a87fa469104c26f9b2ba3e. картинка приложение asp net с базой данных. картинка 9195dbc022a87fa469104c26f9b2ba3e.

Для строковых значений используем тип nvarchar(n), где n – максимальная длина строки, обычно используется от 50 до 500. Для больших текстовых строк используется nvarchar(MAX).

Устанавливаем первичный ключ:

приложение asp net с базой данных. be45cde770889a42b93fa93c00f88c9b. приложение asp net с базой данных фото. приложение asp net с базой данных-be45cde770889a42b93fa93c00f88c9b. картинка приложение asp net с базой данных. картинка be45cde770889a42b93fa93c00f88c9b.

Задаем для ID автоинкремент:

приложение asp net с базой данных. 9f65cf52c4706e759043c69eda48a8d2. приложение asp net с базой данных фото. приложение asp net с базой данных-9f65cf52c4706e759043c69eda48a8d2. картинка приложение asp net с базой данных. картинка 9f65cf52c4706e759043c69eda48a8d2.

Подобным образом создаем таблицу User:

ПолеТип поля
IDint
Emailnvarchar(150)
Passwordnvarchar(50)
AddedDatedatetime
ActivatedDatedatetime (null)
ActivatedLinknvarchar(50)
LastVisitDatedatetime (null)
AvatarPathnvarchar(150) (null)

Создаем таблицу UserRole:

ПолеТип поля
IDint
UserIDint
RoleIDint

приложение asp net с базой данных. 9775237c7298fb756f72f2b1b65ada27. приложение asp net с базой данных фото. приложение asp net с базой данных-9775237c7298fb756f72f2b1b65ada27. картинка приложение asp net с базой данных. картинка 9775237c7298fb756f72f2b1b65ada27.

Добавляем новую связь, нажав Add. Добавление связей происходит в таблице, где находятся внешние ключи. Раскрываем вкладку Tables and Columns и выставляем таблицу с первичным ключом, и выбираем внешний ключ в текущей таблице UserRole.

приложение asp net с базой данных. d6356092752310ea3112a40a3baca81d. приложение asp net с базой данных фото. приложение asp net с базой данных-d6356092752310ea3112a40a3baca81d. картинка приложение asp net с базой данных. картинка d6356092752310ea3112a40a3baca81d.

В свойствах INSERT And UPDATE Specification выставляем On Update/On Delete свойства Cascade:

приложение asp net с базой данных. ca31c30b160b97646259d5d91b05b230. приложение asp net с базой данных фото. приложение asp net с базой данных-ca31c30b160b97646259d5d91b05b230. картинка приложение asp net с базой данных. картинка ca31c30b160b97646259d5d91b05b230.

Это необходимо для того, чтобы при изменении/удалении столбца из таблицы Role все связанные с этой строкой строки таблицы UserRole должны быть изменены или удалены.

Аналогичную связь мы устанавливаем с таблицей User.

Таким образом, таблицы Role и User имеют отношения многие ко многим через таблицу UserRole. Т.е. у одного пользователя может быть больше одной роли, и одна и та же роль может быть у нескольких пользователей.

SELECT, INSERT, UPDATE, DELETE.

В реляционных базах данных используется язык запросов SQL.

Есть 4 основные команды для манипулирования данными — SELECT, INSERT, UPDATE, DELETE

SELECT – для выбора данных и таблиц.
Пример:

INSERT — Добавление строк в таблицу
Пример:

UPDATE – изменение значений в таблице
Пример:

DELETE – удаление строк из таблицы
Пример:

LinqToSQL и Linq.

Создадим проект LessonProject.Model для работы с БД типа ClassLibrary.
Добавляем LINQ to SQL Classes тип, называем LessonProejctDb.dbml

приложение asp net с базой данных. 195475c0bd21d33c677474644617f589. приложение asp net с базой данных фото. приложение asp net с базой данных-195475c0bd21d33c677474644617f589. картинка приложение asp net с базой данных. картинка 195475c0bd21d33c677474644617f589.

Открываем объект, выделяем все таблицы и мышкой переносим на холст:

приложение asp net с базой данных. 197b26686844001ee91fbdf967dbcc21. приложение asp net с базой данных фото. приложение asp net с базой данных-197b26686844001ee91fbdf967dbcc21. картинка приложение asp net с базой данных. картинка 197b26686844001ee91fbdf967dbcc21.

Добавим несколько данных в таблицу Role и User:

1adminАдмин
2customerЗаказчик
1chernikov@gmail.com1234561/1/2012 12:00:00 AMNULL123456NULLNULL
2chernikov2@gmail.com1234561/1/2012 12:00:00 AMNULL123456NULLNULL
IDUserIDRoleID
111
212
322

Создадим консольный проект Lesson3 и подключим LessonProject.Model. Добавим сборку System.Configuration и System.Data.Linq. Проинициализируем context и выведем данные о ролях:

Для добавления строки в Role делаем так:

Для удаления строки в Role делаем так:

Для изменения данных делаем так:

Для манипуляции данных используется язык запросов Linq. Мы рассмотрим только некоторые основные функции Linq. Linq применяется для типов реализующий интерфейс IQueryable<>

Создание репозитория IRepository, SqlRepository.

Собственно с БД мы уже можем работать, только теперь нужно отделить модель данных от конкретной реализации, т.е. наши контроллеры про context и System.Data.Linq вообще не должны ничего знать.

Для этого создадим интерфейс IRepository, где будет дан доступ к данным, а также выведены методы для создания, изменения и удаления этих данных.

Реализацию назовем SqlRepository. Так как мы с данным контекстом SqlRepository не хотим особо связывать, то добавим Ninject модуль в проект LessonProject.Model:

Создадим класс SqlRepository:

Прежде, чем реализовать доступ ко всем таблицам, создание, удаление и изменение, подумаем о том, что файл этот будет выглядеть громадным и неуклюжим. Таким кодом будет управлять тяжело физически. Так что сделаем отдельную папку SqlRepository и SqlRepository класс сделаем partial, а в папке создадим реализации интерфейса IRepository, разбитые по каждой таблице. Назовем файл Role:

Небольшой проект содержит от 10 до 40 таблиц, большой проект от 40, и всё это хотелось бы как-то автоматизировать. Создадим несколько сниппетов, для IRepository и для SqlRepository. Сниппеты – это уже готовые шаблоны кода, которые вызываются с помощью intelliSence, и позволяют быстро создавать код.

Сниппеты

Для IRepository таблиц, создадим table.snippet:

Для SqlRepository создадим сниппет sqlTable.snippet:

приложение asp net с базой данных. 3098dbcb9427a1421b6f99324c28edcd. приложение asp net с базой данных фото. приложение asp net с базой данных-3098dbcb9427a1421b6f99324c28edcd. картинка приложение asp net с базой данных. картинка 3098dbcb9427a1421b6f99324c28edcd.

Finish, OK.
Используем для таблиц User и UserRole.

приложение asp net с базой данных. 69d040b4b66a0edf72a6620108019bc6. приложение asp net с базой данных фото. приложение asp net с базой данных-69d040b4b66a0edf72a6620108019bc6. картинка приложение asp net с базой данных. картинка 69d040b4b66a0edf72a6620108019bc6.

приложение asp net с базой данных. 9e2c6647903083b0f1183aade33b6319. приложение asp net с базой данных фото. приложение asp net с базой данных-9e2c6647903083b0f1183aade33b6319. картинка приложение asp net с базой данных. картинка 9e2c6647903083b0f1183aade33b6319.

Осталось прописать только поля для Update [имя таблицы], но это уже меньше работы.

Proxy

Как видим, классы, которые мы используем, являются partial, поэтому их можно дополнить. Создадим, подобно SqlRepository, папку Proxy, где будем размещать partial классы. Например, для класса User создадим метод, который автоматически генерирует строку, требуемую для активации пользователя:

Использование БД в asp.net mvc

Добавим строку доступа к БД в web.Config:

Проинициализируем работу с БД в Ninject:

Применяем InRequestScope(). Т.е. каждый запрос будет использовать отдельный объект SqlRepository. Это позволит избежать коллизий при исполнении.Объявляем IRepository в контроллере:

Источник

Часть 5. Работа с базой данных в приложении MVC ASP.NET Core

Авторы: Рик Андерсон (Rick Anderson) и Джон П. Смит (Jon P Smith)

Объект MvcMovieContext обрабатывает задачу подключения к базе данных и сопоставления объектов Movie с записями базы данных. Контекст базы данных регистрируется с помощью контейнера внедрения зависимостей в методе ConfigureServices в файле Startup.cs:

Если приложение развертывается на тестовом или рабочем сервере, можно задать строку подключения к рабочему SQL Server с помощью переменной среды. Дополнительные сведения см. в разделе Конфигурация.

SQL Server Express LocalDB

Проверка базы данных

В меню Вид откройте обозреватель объектов SQL Server (SSOX).

приложение asp net с базой данных. . приложение asp net с базой данных фото. приложение asp net с базой данных-. картинка приложение asp net с базой данных. картинка .

Щелкните правой кнопкой мыши таблицу Movie и выберите Конструктор представлений.

приложение asp net с базой данных. design. приложение asp net с базой данных фото. приложение asp net с базой данных-design. картинка приложение asp net с базой данных. картинка design.

приложение asp net с базой данных. dv. приложение asp net с базой данных фото. приложение asp net с базой данных-dv. картинка приложение asp net с базой данных. картинка dv.

Щелкните правой кнопкой мыши таблицу Movie и выберите Просмотр данных.

приложение asp net с базой данных. . приложение asp net с базой данных фото. приложение asp net с базой данных-. картинка приложение asp net с базой данных. картинка .

приложение asp net с базой данных. vd22. приложение asp net с базой данных фото. приложение asp net с базой данных-vd22. картинка приложение asp net с базой данных. картинка vd22.

SQLite

На веб-сайте SQLite указывается следующее:

SQLite — это автономная внедряемая полнофункциональная общедоступная система управления базами данных SQL с высокой степенью надежности. На данный момент SQLite является самой популярной СУБД в мире.

Для просмотра баз данных SQLite, а также управления ими можно использовать множество самых разных сторонних инструментов. На следующем рисунке показан DB Browser для SQLite. Если вы предпочитаете использовать другое средство для работы с SQLite, напишите нам в комментариях, чем именно оно нравится вам.

приложение asp net с базой данных. dbb. приложение asp net с базой данных фото. приложение asp net с базой данных-dbb. картинка приложение asp net с базой данных. картинка dbb.

В этом руководстве используется функция миграции Entity Framework Core, где это возможно. Во время миграции обновляется схема базы данных в соответствии с изменениями в модели данных. Но миграции могут вносить только изменения, которые поддерживает поставщик EF Core, а возможности поставщика SQLite ограничены. Например, добавление столбца поддерживается, но удаление или изменение столбца не поддерживается. Если миграция создается для удаления или изменения столбца, команда ef migrations add выполняется успешно, а команда ef database update — нет. Из-за этих ограничений в этом руководстве не используются миграции для изменения схемы SQLite. Вместо этого при изменении схемы нужно удалить и снова создать базу данных.

Обходной путь для ограничений SQLite — вручную написать код миграции для перестроения таблицы в случае изменений. Перестроение таблицы включает в себя:

Дополнительные сведения см. в следующих ресурсах:

Заполнение базы данных

Создайте класс SeedData в папке Models. Замените сгенерированный код следующим кодом:

Если в базе данных есть фильмы, возвращается инициализатор заполнения и фильмы не добавляются.

Добавление инициализатора заполнения

Замените содержимое Program.cs кодом из этого примера.

Проверьте работу приложения.

Удалите все записи в базе данных. Это можно сделать с помощью ссылок удаления в браузере или из SSOX.

Щелкните правой кнопкой мыши значок IIS Express в области уведомлений и выберите Выйти или Остановить сайт.

приложение asp net с базой данных. stopiis. приложение asp net с базой данных фото. приложение asp net с базой данных-stopiis. картинка приложение asp net с базой данных. картинка stopiis.

Удалите все записи в базе данных. Останавливает и запускает приложение, поэтому метод SeedData.Initialize выполняет и заполняет базу данных.

В приложении будут отображены данные.

приложение asp net с базой данных. m55. приложение asp net с базой данных фото. приложение asp net с базой данных-m55. картинка приложение asp net с базой данных. картинка m55.

Авторы: Рик Андерсон (Rick Anderson) и Джон П. Смит (Jon P Smith)

Объект MvcMovieContext обрабатывает задачу подключения к базе данных и сопоставления объектов Movie с записями базы данных. Контекст базы данных регистрируется с помощью контейнера внедрения зависимостей в методе ConfigureServices в файле Startup.cs:

Если приложение развертывается на тестовом или рабочем сервере, можно задать строку подключения к рабочему SQL Server с помощью переменной среды. Дополнительные сведения см. в разделе Конфигурация.

SQL Server Express LocalDB

Проверка базы данных

В меню Вид откройте обозреватель объектов SQL Server (SSOX).

приложение asp net с базой данных. . приложение asp net с базой данных фото. приложение asp net с базой данных-. картинка приложение asp net с базой данных. картинка .

Щелкните правой кнопкой мыши таблицу Movie и выберите Конструктор представлений.

приложение asp net с базой данных. design. приложение asp net с базой данных фото. приложение asp net с базой данных-design. картинка приложение asp net с базой данных. картинка design.

приложение asp net с базой данных. dv. приложение asp net с базой данных фото. приложение asp net с базой данных-dv. картинка приложение asp net с базой данных. картинка dv.

Щелкните правой кнопкой мыши таблицу Movie и выберите Просмотр данных.

приложение asp net с базой данных. . приложение asp net с базой данных фото. приложение asp net с базой данных-. картинка приложение asp net с базой данных. картинка .

приложение asp net с базой данных. vd22. приложение asp net с базой данных фото. приложение asp net с базой данных-vd22. картинка приложение asp net с базой данных. картинка vd22.

SQLite

На веб-сайте SQLite указывается следующее:

SQLite — это автономная внедряемая полнофункциональная общедоступная система управления базами данных SQL с высокой степенью надежности. На данный момент SQLite является самой популярной СУБД в мире.

Для просмотра баз данных SQLite, а также управления ими можно использовать множество самых разных сторонних инструментов. На следующем рисунке показан DB Browser для SQLite. Если вы предпочитаете использовать другое средство для работы с SQLite, напишите нам в комментариях, чем именно оно нравится вам.

приложение asp net с базой данных. dbb. приложение asp net с базой данных фото. приложение asp net с базой данных-dbb. картинка приложение asp net с базой данных. картинка dbb.

В этом руководстве используется функция миграции Entity Framework Core, где это возможно. Во время миграции обновляется схема базы данных в соответствии с изменениями в модели данных. Но миграции могут вносить только изменения, которые поддерживает поставщик EF Core, а возможности поставщика SQLite ограничены. Например, добавление столбца поддерживается, но удаление или изменение столбца не поддерживается. Если миграция создается для удаления или изменения столбца, команда ef migrations add выполняется успешно, а команда ef database update — нет. Из-за этих ограничений в этом руководстве не используются миграции для изменения схемы SQLite. Вместо этого при изменении схемы нужно удалить и снова создать базу данных.

Обходной путь для ограничений SQLite — вручную написать код миграции для перестроения таблицы в случае изменений. Перестроение таблицы включает в себя:

Дополнительные сведения см. в следующих ресурсах:

Заполнение базы данных

Создайте класс SeedData в папке Models. Замените сгенерированный код следующим кодом:

Если в базе данных есть фильмы, возвращается инициализатор заполнения и фильмы не добавляются.

Добавление инициализатора заполнения

Замените содержимое Program.cs кодом из этого примера.

Проверьте работу приложения.

Удалите все записи в базе данных. Это можно сделать с помощью ссылок удаления в браузере или из SSOX.

Щелкните правой кнопкой мыши значок IIS Express в области уведомлений и выберите Выйти или Остановить сайт.

приложение asp net с базой данных. stopiis. приложение asp net с базой данных фото. приложение asp net с базой данных-stopiis. картинка приложение asp net с базой данных. картинка stopiis.

Источник

ASP.NET Web API + Entity Framework + Microsoft SQL Server + Angular. Часть 1

приложение asp net с базой данных. ez6zhv5fvsg5 v0rmccmrrt3zmm. приложение asp net с базой данных фото. приложение asp net с базой данных-ez6zhv5fvsg5 v0rmccmrrt3zmm. картинка приложение asp net с базой данных. картинка ez6zhv5fvsg5 v0rmccmrrt3zmm.

Введение

Небольшой курс по созданию простого веб-приложения с помощью технологий ASP.NET Core, фреймворка Entity Framework, СУБД Microsoft SQL Server и фреймворка Angular. Тестировать Web API будем через приложение Postman.

Курс состоит из нескольких частей:

Часть 1. Создание Web API с помощью ASP.NET Web API и Entity Framework Core


В качестве примера будем расматривать уже ставшее классическим — приложение списка дел. Для разработки приложения я буду использовать Visual Studio 2019(в Visual Studio 2017 процесс аналогичен).

Создание проекта

Создадим новый проект ASP.NET Core Web Application в Visual Studio:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

Назовем приложение и укажем путь к каталогу с проектом:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

И выберем шаблон приложения API:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

Модель

Создадим каталог Models и в новый каталог добавим первый класс TodoItem.cs, объекты которого будут описывать некоторые задачи списка дел в приложении:

В качестве СУБД мы будем использовать Sql Server, а доступ к базе данных будет осуществляться через Entity Framework Core и для начала установим фреймворк через встроенный пакетный менеджер NuGet:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

Одним из подходов в работе с Entity Framework является подход «Code-First». Суть подхода заключается в том, что на основе модели приложения(в нашем случае модель представляет единственный класс — TodoItem.cs) формируется струткура базы данных(таблицы, первичные ключи, ссылки), вся эта работа происходит как бы «за кулисами» и напрямую с SQL мы не работаем. Обязательным условием класса модели является наличие поля первичного ключа, по умолчанию Entity Framework ищет целочисленное поле в имени которого присутствует подстрока «id» и формирует на его основе первичный ключ. Переопределить такое поведение можно с помощью специальных атрибутов или используя возможности Fluent API.

Главным компонентом в работе с Entity Framework является класс контекста базы данных, через который собственно и осуществляется доступ к данным в таблицах:

Базовый класс DbContext создает контекст БД и обеспечивает доступ к функциональности Entity Framework.

Для хранения данных приложения мы будем использовать SQL Server 2017 Express. Строки подключения хранятся в файле JSON под названием appsettings.json:

Далее нужно внести изменения в класс Startup.cs, добавив в метод ConfigureServices() следующий код:

Метод AddDbContext() настраивает службы, предоставляемые инфраструктурой Entity Framework Core для класса контекста базы EFTodoDBContext. Аргументом метода AddDbContext () является лямбда-выражение, которое получает объект options, конфигурирующий базу данных для класса контекста. В этом случае база данных конфигурируется с помощью метода UseSqlServer() и указания строки подключения.

Определим основные операции для работы с задачами в интерфейсе ITodoRepository:

Данный интерфейс позволяет нам не задумываться о конкретной реализации хранилища данных, возможно мы точно не определились с выбором СУБД или ORM фреймворком, сейчас это не важно, класс описывающий доступ к данным будет наследовать от этого интерфейса.
Реализуем репозиторий, который как уже сказано ранее, будет наследовать от ITodoRepository и использовать в качестве источника данных EFTodoDBContext:

Контроллер

Контроллер, реализация которого будет описана ниже, ничего не будет знать о контексте данных EFTodoDBContext, а будет использовать в своей работе только интерфейс ITodoRepository, что позволяет изменить источник данных не меняя при этом контроллера. Такой подход Адам Фримен в своей книге «Entity Framework Core 2 для ASP.NET Core MVC для профессионалов» назвал — паттерн «Хранилище».

Контроллер реализует обработчики стандартных методов HTTP-запросов: GET, POST, PUT, DELETE, которые будут изменять состояние наших задач, описанных в классе TodoItem.cs.

Добавим в каталог Controllers класс TodoController.cs со следующим содержимым:

Перед определением класса указан атрибут с описанием шаблона маршрута для доступа к контроллеру: [Route(«api/[controller]»)]. Контроллер TodoController будет доступен по следующему маршруту: https:// : /api/todo. В [controller] указывается название класса контроллера в нижнем регистре, опуская часть «Controller».

Перед определением каждого метода в контроллере TodoController указан специальный атрибут вида: [ («параметр»,Name = «псевдоним метода»)]. Атрибут определяет какой HTTP-запрос будет обработан данным методом, параметр, который передается в URI запроса и псевдоним метода с помощью которого можно переотправлять запрос. Если не указать атрибут, то по умолчанию инфраструктура MVC попытается найти самый подходящий метод в контроллере для обработки запроса исходя из названия метода и указанных параметров в запросе, так, если не указать в контроллере TodoController атрибут для метода Get(), то при HTTP-запросе методом GET: https:// : /api/todo, инфраструткура определит для обработки запроса метод Get() контроллера.

В своем конструкторе контроллер получает ссылку на объект типа ITodoRepository, но пока что инфраструктура MVC не знает, какой объект подставить при создании контроллера. Нужно создать сервис, который однозначно разрешит эту зависисмость, для этого внесем некотрые изменения в класс Startup.cs, добавив в метод ConfigureServices() следующий код:

Метод AddTransient () определяет сервис, который каждый раз, когда требуется экземпляр типа ITodoRepository, например в контроллере, создает новый экземпляр класс EFTodoRepository.

Полный код класса Startup.cs:

Миграции

Для того чтобы Entity Framework сгенерировал базу данных и таблицы на основе модели, нужно использовать процесс миграции базы данных. Миграции — это группа команд, которая выполняет подготовку базы данных для работы с Entity Framework. Они используются для создания и синхронизации базы данных. Команды можно выполнять как в консоли диспетчера пакетов (Package Manager Console), так и в Power Shell(Developer Power Shell). Мы будем использовать консоль диспетчера пакетов, для работы с Entity Framework потребуется установить пакет Microsoft.EntityFrameworkCore.Tools:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

Запустим консоль диспетчера пакетов и выполним команду Add-Migration Initial:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

В проекте появится новый каталог — Migrations, в котором будут хранится классы миграции, на основе которых и будут создаваться объекты в базе данных после выполнения команды Update-Database:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

Web API готово, запустив приложение на локальном IIS Express мы можем протестировать работу контроллера.

Тестирование WebAPI

Создадим новую коллекцию запросов в Postman под названием TodoWebAPI:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

Так как наша база пуста, протестируем для начала создание новой задачи. В контроллере за создание задач отвечает метод Create(), который будет обрабатывать HTTP запрос отправленный методом POST и будет содержать в теле запроса сериализированный объект TodoItem в JSON формате. Аттрибут [FromBody] перед параметром todoItem в методе Create() подсказывает инфраструктуре MVC, что нужно десериализировать объект TodoItem из тела запроса и передать его в качестве параметра методу. Создадим запрос в Postman, который отправит на webAPI запрос на создание новой задачи:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

Метод Create() после успешного создания задачи перенаправляет запрос на метод Get() с псевдонимом «GetTodoItem» и передает в качестве параметра Id только что созданной задачи, в результате чего в ответ на запрос мы получим созданный объект задачи в формате JSON.

Отправив HTTP запрос методом PUT и указав при этом в URI Id(https://localhost:44370/api/todo/1) уже созданного объекта, а в теле запроса передав объект с некоторыми изменениями в формате JSON, мы изменим этот объект в базе:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

HTTP запросом с методом GET без указания параметров получим все объекты в базе:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

Запрос HTTP с методом DELETE и указанием Id объекта в URI(https://localhost:44370/api/todo/2), удалит объект из базы и вернет JSON с удаленной задачей:

приложение asp net с базой данных. image loader. приложение asp net с базой данных фото. приложение asp net с базой данных-image loader. картинка приложение asp net с базой данных. картинка image loader.

На этом все, в следующей части реализуем пользовательский интерфейс с помощью JavaScript-фреймворка Angular.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *