Sobes.tech
Junior — Middle

Ako ste štruktúrovali interakciu s databázou vo svojich projektoch?

sobes.tech AI

Odpoveď od AI

V mojich projektoch zvyčajne štruktúrujem interakciu s databázou nasledovne:

  1. Vrstva prístupu k dátam (DAL) — samostatná vrstva alebo súbor tried zodpovedných za priame interakcie s databázou (napríklad cez ORM alebo ADO.NET).
  2. Repository — vzor, ktorý inkapsuluje logiku dotazov a operácií s konkrétnymi entitami, poskytujúc pohodlné rozhranie pre biznis logiku.
  3. Jednotka práce (Unit of Work) — na správu transakcií a konzistenciu dát.

Príklad v C# s 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);
}

Tento prístup uľahčuje testovanie, údržbu a škálovanie projektu.