21. C#: Generic Repository (EF Core)
C#Uniwersalna warstwa dostępu do danych z obsługą asynchroniczną.
public class Repository where T : class {
private readonly DbContext _context;
private readonly DbSet _dbSet;
public Repository(DbContext context) {
_context = context;
_dbSet = context.Set();
}
public async Task GetByIdAsync(int id) => await _dbSet.FindAsync(id);
}
Kiedy używać
Przydatne, gdy wiele encji w bazie danych wymaga tych samych podstawowych operacji CRUD.
Typowe pułapki
Zbyt ogólne repozytorium utrudnia dodawanie specyficznych zapytań z Include() czy złożonych filtrów — czasem lepiej wydzielić repozytoria dziedziczące.