Sobes.tech
Junior — Middle

De que forma estruturou a interação com a base de dados nos seus projetos?

sobes.tech IA

Resposta da IA

Nos meus projetos, normalmente estruturo a interação com a base de dados da seguinte forma:

  1. Camada de acesso aos dados (DAL) — uma camada ou conjunto de classes responsáveis pela interação direta com a base de dados (por exemplo, através de ORM ou ADO.NET).
  2. Repositórios — padrão que encapsula a lógica de consultas e operações com entidades específicas, fornecendo uma interface conveniente para a lógica de negócio.
  3. Unidade de trabalho (Unit of Work) — para gerir transações e coerência de dados.

Exemplo em 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 método facilita o teste, manutenção e escalabilidade do projeto.