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);
}
Бу ёндашув тестлаш, хизмат кўрсатиш ва лойиҳани кенгайтиришда осонлаштиради.