Sobes.tech
Junior — Middle

Hogyan strukturáltad az adatbázissal való interakciót a projektjeidben?

sobes.tech MI

Válasz az MI-től

Projektjeimben általában így strukturálom az adatbázissal való interakciót:

  1. Adathozzáférési réteg (DAL) — egy réteg vagy osztályok halmaza, amelyek közvetlenül az adatbázissal való kommunikációért felelősek (pl. ORM vagy ADO.NET segítségével).
  2. Repositoryk — minta, amely beágyazza a lekérdezések és műveletek logikáját konkrét entitásokkal, kényelmes felületet biztosítva az üzleti logikának.
  3. Egység munkája (Unit of Work) — a tranzakciók és az adatok konzisztenciájának kezelése érdekében.

Példa C#-ban Entity Framework használatával:

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

Ez a megközelítés megkönnyíti a tesztelést, a karbantartást és a projekt skálázását.