Sobes.tech
Junior — Middle

Loyihalaringizda ma'lumotlar bazasi bilan o'zaro aloqani qanday tuzdingiz?

sobes.tech AI

AIdan javob

Loyihalarimda odatda ma'lumotlar bazasi bilan o'zaro aloqani quyidagicha tuzaman:

  1. Ma'lumotlarga kirish qatlam (DAL) — ma'lumotlar bazasi bilan to'g'ridan-to'g'ri o'zaro aloqada bo'ladigan qatlam yoki sinflar to'plami (masalan, ORM yoki ADO.NET orqali).
  2. Repositorylar — maxsus entitilar bilan so'rovlar va operatsiyalar logikasini inkapsulyatsiya qiladigan naqsh, biznes logika uchun qulay interfeys taqdim etadi.
  3. Ish birligi (Unit of Work) — tranzaksiyalar va ma'lumotlarning izchilligini boshqarish uchun.

C# da Entity Framework bilan misol:

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);
}

Bu yondashuv test qilishni, qo'llab-quvvatlashni va loyihaning kengaytirilishini osonlashtiradi.