Sobes.tech
Junior — Middle

¿Cómo estructuró la interacción con la base de datos en sus proyectos?

sobes.tech AI

Respuesta de la IA

En mis proyectos, normalmente estructuro la interacción con la base de datos de la siguiente manera:

  1. Capa de acceso a datos (DAL) — una capa o conjunto de clases responsables de la interacción directa con la base de datos (por ejemplo, mediante ORM o ADO.NET).
  2. Repositorios — patrón que encapsula la lógica de consultas y operaciones con entidades específicas, proporcionando una interfaz conveniente para la lógica de negocio.
  3. Unidad de trabajo (Unit of Work) — para gestionar transacciones y coherencia de datos.

Ejemplo en C# usando Entity Framework:

public interface IRepository<T> where T : class
{
    Task<T> GetByIdAsync(int id);
    Task<IEnumerable<T>> GetAllAsync();
    void Add(T entity);
    void Remove(T entity);
}

public class Repository<T> : IRepository<T> where T : class
{
    protected readonly DbContext _context;
    public Repository(DbContext context) { _context = context; }

    public async Task<T> GetByIdAsync(int id) => await _context.Set<T>().FindAsync(id);
    public async Task<IEnumerable<T>> GetAllAsync() => await _context.Set<T>().ToListAsync();
    public void Add(T entity) => _context.Set<T>().Add(entity);
    public void Remove(T entity) => _context.Set<T>().Remove(entity);
}

Este enfoque facilita las pruebas, el mantenimiento y la escalabilidad del proyecto.