Junior — Middle
Ինչպես եք կառուցել տվյալների բազայի հետ փոխազդեցությունը ձեր նախագծերում?
sobes.tech AI
Պատասխան AI-ից
Իմ նախագծերում սովորաբար կառուցում եմ տվյալների բազայի հետ փոխազդեցությունը հետևյալ կերպ՝
- Տվյալների մուտքի շերտ (DAL) — առանձին շերտ կամ դասերի հավաքածու, որոնք պատասխանատու են տվյալների բազայի հետ ուղղակի փոխազդեցության համար (օրինակ՝ ORM կամ ADO.NET միջոցով):
- Պահոցներ (Repositories) — նմուշ, որը կափում է հարցումների և գործողությունների տրամաբանությունը կոնկրետ էակների հետ, ապահովելով հարմար ինտերֆեյս բիզնես տրամաբանության համար:
- Աշխատանքի միավոր (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);
}
Այս մոտեցումը հեշտացնում է թեստավորումը, սպասարկումը և նախագծի ընդլայնումը։