Sobes.tech
Junior — Middle

Wie haben Sie die Interaktion mit der Datenbank in Ihren Projekten strukturiert?

sobes.tech KI

Antwort von AI

In meinen Projekten strukturiere ich die Interaktion mit der Datenbank in der Regel wie folgt:

  1. Datenzugriffsschicht (DAL) — eine Schicht oder eine Reihe von Klassen, die für die direkte Interaktion mit der Datenbank verantwortlich sind (z.B. über ORM oder ADO.NET).
  2. Repositorys — ein Muster, das die Logik von Abfragen und Operationen mit bestimmten Entitäten kapselt und eine bequeme Schnittstelle für die Geschäftslogik bietet.
  3. Unit of Work — zur Verwaltung von Transaktionen und Datenkonsistenz.

Beispiel in C# mit 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);
}

Dieser Ansatz erleichtert das Testen, die Wartung und die Skalierung des Projekts.