Unidad de trabajo con implementación de repositorio genérico utilizando .NET Core 6 Web API

Dec 03 2022
Vamos a analizar el patrón de diseño de la unidad de trabajo con la ayuda de un repositorio genérico y la implementación paso a paso mediante la API web de .NET Core 6.

Vamos a analizar el patrón de diseño de la unidad de trabajo con la ayuda de un repositorio genérico y la implementación paso a paso mediante la API web de .NET Core 6.

Agenda

  • Patrón de repositorio
  • Unidad de Trabajo
  • Implementación paso a paso
  • estudio visual 2022
  • servidor SQL
  • SDK de .NET Core 6
  • El patrón de repositorio se utiliza para crear una capa de abstracción entre la capa de acceso a datos y la capa empresarial de una aplicación.
  • Este patrón ayuda a reducir la duplicación de código y sigue el principio DRY.
  • También ayuda a crear un acoplamiento débil entre múltiples componentes, cuando queremos cambiar algo dentro de la capa de acceso a datos, ese tiempo no necesita cambiar otra capa donde consumimos esa funcionalidad.
  • La separación de preocupaciones facilita las cosas para mantener el código.
  • La implementación de patrones de repositorio nos ayuda a escribir casos de prueba de unidad de manera eficiente y sencilla.
  • El patrón de repositorio nos ayuda a crear una abstracción, desacoplar el código y evitar el código redundante.
  • Pero a veces podría actualizar parcialmente los datos porque cuando la aplicación es enorme y los repositorios comparten el mismo contexto de base de datos en toda la aplicación y realizan operaciones como insertar, actualizar y leer. Entonces, en ese caso, podría haber una posibilidad de que algunas transacciones fallen y pocas se ejecuten con éxito debido a problemas de concurrencia. Entonces, por esta razón, usamos una unidad de trabajo para mantener la integridad de los datos dentro de la aplicación.
  • Además, la unidad de trabajo administra una base de datos en memoria cuando realizamos operaciones CRUD en algunas clases de entidades como una sola transacción y si algunas operaciones de la base de datos fallarán, en ese caso todas las operaciones se revertirán.
  • También ayuda a hacer que las capas se acoplen de forma flexible mediante la inyección de dependencia y siga los principios de desarrollo dirigido por pruebas (TDD).

Paso 1

Crear una nueva API web de .NET Core

Paso 2

Configura tu aplicación

Paso 3

Proporcione algunos detalles adicionales

Estructura del proyecto

Paso 4

Cree tres proyectos de biblioteca de clases dentro de la solución principal

Paso 5

A continuación, agregue una clase de modelo dentro del proyecto UnitOfWorkDemo.Core y también agregue algunas interfaces.

ProductDetails.cs

IGenericRepository.cs

IProductRepository.cs

IUnidadDeTrabajo.cs

Paso 6

Ahora, agregaremos una implementación de todos los repositorios que creamos anteriormente y también crearemos un DbContextClass dentro de eso.

archivo de proyecto

GenericRepository.cs

ProductRepository.cs

UnidadDeTrabajo.cs

DbContextClass.cs

Después de eso, cree una clase de extensión para la que estamos acostumbrados a registrar servicios DI y configúrela dentro del archivo Program.cs dentro del proyecto raíz.

ServiceExtension.cs

Luego, agregue la migración y actualice la base de datos dentro del proyecto de infraestructura usando el siguiente comando

add-migration “v1”
update-database

A continuación, cree un servicio de producto dentro del proyecto Servicios que inyectamos y consumimos dentro del controlador principal

IProductService.cs

ProductService.cs

Paso 6

Ahora, creamos un controlador de productos dentro del proyecto principal y agregamos múltiples puntos finales.

ProductosController.cs

Además, agregue una cadena de conexión de base de datos dentro del archivo appsetting.json

Después de eso, registre algunos servicios dentro de la clase Program.

Finalmente, ejecuta el proyecto.

URL de GitHub

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

Conclusión

Aquí discutimos los patrones de repositorio y las unidades de trabajo. además, los beneficios y la implementación paso a paso usando .NET Core Web API.

¡Feliz codificación!