Junior — Middle
Projelerinde veritabanıyla etkileşimi nasıl yapılandırdınız?
sobes.tech yapay zeka
AI'dan gelen yanıt
Projelerimde, veritabanıyla etkileşimi genellikle şu şekilde yapılandırıyorum:
- Veri erişim katmanı (DAL) — doğrudan veritabanıyla etkileşimden sorumlu olan katman veya sınıf setleri (örneğin, ORM veya ADO.NET aracılığıyla).
- Depolar (Repositories) — belirli varlıklar üzerinde sorgu ve işlemleri kapsülleyen desen, iş mantığı için kullanışlı bir arayüz sağlar.
- İş Birimi (Unit of Work) — işlemleri ve veri tutarlılığını yönetmek için.
Entity Framework kullanarak C# örneği:
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 yaklaşım, test etmeyi, bakımı ve projenin ölçeklenebilirliğini kolaylaştırır.