Junior — Middle
Cum ați structurat interacțiunea cu baza de date în proiectele dvs.?
sobes.tech AI
Răspuns de la AI
În proiectele mele, de obicei structurez interacțiunea cu baza de date în felul următor:
- Stratul de acces la date (DAL) — un strat sau un set de clase responsabile pentru interacțiunea directă cu baza de date (de exemplu, prin ORM sau ADO.NET).
- Repositoire — un pattern care încapsulează logica interogărilor și operațiilor cu entități specifice, oferind o interfață convenabilă pentru logica de business.
- Unit of Work — pentru gestionarea tranzacțiilor și coerenței datelor.
Exemplu în C# cu 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);
}
Această abordare facilitează testarea, întreținerea și scalabilitatea proiectului.