Единица работы с реализацией универсального репозитория с использованием веб-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.
Удачного кодирования!