El patrón **Unit of Work** (Unidad de Trabajo) es responsable de realizar un seguimiento de todo lo que has hecho durante una transacción de negocio que pueda afectar a la base de datos.
Cuando la transacción termina, la Unidad de Trabajo calcula todo lo que necesita hacerse para reflejar los cambios en la base de datos (inserciones, actualizaciones y eliminaciones).
# ¿Por qué usar Unit of Work?
Sin este patrón, podrías terminar haciendo múltiples llamadas pequeñas a la base de datos, lo cual es ineficiente. Unit of Work agrupa todas las operaciones en un solo bloque, optimizando el rendimiento y asegurando que la transacción sea atómica.
# Ventajas
-
verified
Transacciones Atómicas
Asegura que todos los cambios se guarden o ninguno.
-
verified
Reducción de DB hits
Minimiza el número de conexiones a la base de datos.
# Ejemplo Conceptual
1. uow.registerNew(customer)
2. uow.registerDirty(order302)
3. uow.commit() // Ejecuta todo