Единица работы с реализацией универсального репозитория с использованием веб-API .NET Core 6

Dec 03 2022
Мы собираемся обсудить шаблон проектирования «Единица работы» с помощью универсального репозитория и пошаговой реализации с использованием веб-API .NET Core 6.

Мы собираемся обсудить шаблон проектирования «Единица работы» с помощью универсального репозитория и пошаговой реализации с использованием веб-API .NET Core 6.

Повестка дня

  • Шаблон репозитория
  • Единица работы
  • Пошаговая реализация
  • Визуальная студия 2022
  • SQL-сервер
  • Пакет SDK для .NET Core 6
  • Шаблон репозитория используется для создания уровня абстракции между уровнем доступа к данным и бизнес-уровнем приложения.
  • Этот шаблон помогает уменьшить дублирование кода и следует принципу DRY.
  • Это также помогает создать слабую связь между несколькими компонентами, когда мы хотим что-то изменить внутри уровня доступа к данным, что время не нужно менять другой уровень, где мы используем эту функциональность.
  • Разделение задач упрощает поддержку кода.
  • Внедрение шаблонов репозитория помогает нам эффективно и легко писать модульные тесты.
  • Шаблон репозитория помогает нам создать абстракцию, отделить код и избежать избыточного кода.
  • Но иногда это может частично обновить данные, потому что, когда приложение огромно, а репозитории совместно используют один и тот же контекст базы данных во всем приложении и выполняют такие операции, как вставка, обновление и чтение. Таким образом, в этом случае может возникнуть вероятность сбоя некоторых транзакций, и лишь немногие из них будут выполнены успешно из-за проблем с параллелизмом. Итак, по этой причине мы используем единицу работы для поддержания целостности данных внутри приложения.
  • Кроме того, единица работы управляет базой данных в памяти, когда мы выполняем операции CRUD над некоторыми классами сущностей как одну транзакцию, и если некоторые операции с базой данных завершатся сбоем, то в этом случае все операции будут откатываться.
  • Это также помогает сделать слои слабо связанными с помощью внедрения зависимостей и следовать принципам Test Driven Development (TDD).

Шаг 1

Создайте новый веб-API .NET Core.

Шаг 2

Настройте свое приложение

Шаг 3

Предоставьте некоторые дополнительные сведения

Структура проекта

Шаг 4

Создайте три проекта библиотеки классов внутри основного решения.

Шаг 5

Затем добавьте один класс модели в проект UnitOfWorkDemo.Core, а также добавьте несколько интерфейсов.

ProductDetails.cs

IGenericRepository.cs

IProductRepository.cs

IUnitOfWork.cs

Шаг 6

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

Файл проекта

GenericRepository.cs

ProductRepository.cs

UnitOfWork.cs

Дбконтексткласс.cs

После этого создайте один класс расширения, для которого мы привыкли регистрировать службы DI, и настройте его внутри файла Program.cs внутри корневого проекта.

ServiceExtension.cs

Затем добавьте миграцию и обновите базу данных внутри инфраструктурного проекта с помощью следующей команды.

add-migration “v1”
update-database

Затем создайте сервис продукта внутри проекта Services, который мы внедряем и потребляем внутри основного контроллера.

IPProductService.cs

ProductService.cs

Шаг 6

Теперь мы создаем контроллер продуктов внутри основного проекта и добавляем несколько конечных точек.

ПродуктыController.cs

Кроме того, добавьте строку подключения к базе данных в файл appsetting.json.

После этого зарегистрируйте некоторые сервисы внутри класса Program

Наконец, запустите проект

URL-адрес GitHub

https://github.com/Jaydeep-007/UnitOfWorkDemo

Вывод

Здесь мы обсудили шаблоны репозитория и единицы работы. также преимущества и пошаговая реализация с использованием .NET Core Web API.

Удачного кодирования!