Junior — Middle
Kā strukturējāt mijiedarbību ar datu bāzi savos projektos?
sobes.tech AI
Atbilde no AI
Manu projektos parasti strukturēju sadarbību ar datu bāzi šādi:
- Datu piekļuves slānis (DAL) — atsevišķs slānis vai klases kopums, kas atbild par tiešu sadarbību ar datu bāzi (piemēram, izmantojot ORM vai ADO.NET).
- Repozitoriji — šablons, kas inkapsulē vaicājumu un operāciju loģiku ar konkrētām entītēm, nodrošinot ērtu saskarni biznesa loģikai.
- Darba vienība (Unit of Work) — transakciju un datu konsekvences pārvaldībai.
Piemērs C# ar 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);
}
Šis pieeja atvieglo testēšanu, uzturēšanu un mērogošanu projektā.