Junior — Middle
Kuidas struktureerisite andmebaasiga suhtlemist oma projektides?
sobes.tech AI
Vastus AI-lt
Minu projektides tavaliselt struktureerin andmebaasiga suhtlemise järgmiselt:
- Andmete ligipääsukihis (DAL) — eraldi kiht või klasside kogum, mis vastutab otsese suhtluse eest andmebaasiga (näiteks ORM või ADO.NET kaudu).
- Ladud (Repositories) — muster, mis kapseldab päringute ja operatsioonide loogika konkreetsete üksuste kohta, pakkudes mugavat liidest äriloogikale.
- Tööüksus (Unit of Work) — transaktsioonide ja andmete järjepidevuse haldamiseks.
Näide C#-s Entity Frameworkiga:
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);
}
See lähenemine lihtsustab testimist, hooldust ja projekti skaleerimist.