Junior — Middle
Jak jste strukturovali interakci s databází ve svých projektech?
sobes.tech AI
Odpověď od AI
Ve svých projektech obvykle strukturuji interakci s databází následujícím způsobem:
- Vrstva přístupu k datům (DAL) — samostatná vrstva nebo sada tříd odpovědných za přímou komunikaci s databází (například přes ORM nebo ADO.NET).
- Repository — vzor, který inkapsuluje logiku dotazů a operací s konkrétními entitami, poskytující pohodlné rozhraní pro obchodní logiku.
- Jednotka práce (Unit of Work) — pro správu transakcí a konzistence dat.
Příklad v C# s použitím 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);
}
Tento přístup usnadňuje testování, údržbu a škálování projektu.