Junior — Middle
Жоболоруңузда маалыматтар базасымен өз ара аракеттенүүнү кандайча түздүңүз?
sobes.tech AI
AIден жооп
Менин долбоорлорумда, адатта, маалымат базасы менен өз ара аракеттенүүнү төмөнкүдөй түзөм:
- Маалыматка жетүү катмары (DAL) — түздөн-түз маалымат базасы менен өз ара аракеттенүү үчүн жооптуу катмары же класстар топтому (мисалы, ORM же ADO.NET аркылуу).
- Репозиторийлер — конкреттүү объектилер менен суроолор жана операциялар логикасын капсулдаштырган үлгү, бизнес логика үчүн ыңгайлуу интерфейс камсыз кылат.
- Иш бирдиги (Unit of Work) — транзакциялар жана маалыматтардын туруктуулугун башкаруу үчүн.
C#да 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);
}
Бул ыкма тестирлөөнү, тейлөө жана долбоорду кеңейтүүнү жеңилдетет.