Sobes.tech
Junior — Middle

Kako ste strukturirali interakciju sa bazom podataka u svojim projektima?

sobes.tech АИ

Одговор од АИ

U mojim projektima obično strukturiram interakciju s bazom podataka na sljedeći način:

  1. Sloj pristupa podacima (DAL) — poseban sloj ili skup klasa odgovoran za izravnu interakciju s bazom podataka (npr. putem ORM-a ili ADO.NET-a).
  2. Repozitoriji — obrazac koji inkapsulira logiku upita i operacija s određenim entitetima, pružajući prikladan sučelje za poslovnu logiku.
  3. Jedinstvo rada (Unit of Work) — za upravljanje transakcijama i konzistentnošću podataka.

Primjer u C# s Entity Framework-om:

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);
}

Ovaj pristup olakšava testiranje, održavanje i skaliranje projekta.