Ich habe folgende generische Repository:EF Mit allgemeiner und spezieller Repositories
public class GenericRepository<TEntity> where TEntity : class {
private EFDbContext context;
private DbSet<TEntity> dbSet;
public GenericRepository(EFDbContext context) {}
public IEnumerable<TEntity> GetAll() {}
public IEnumerable<TEntity> Get(Expression<Func<TEntity, bool>> filter = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, string includeProperties = "") {}
public TEntity GetByID(int id) {}
public void Insert(TEntity entity) {}
public void Delete(int id) {}
public void Delete(TEntity entity) {}
public void Update(TEntity entity) {}
}
Jetzt verstehe ich, wie ich dies für meine Einheiten verwenden kann, aber ich verstehe nicht, was passiert, wenn ein Unternehmen mehr tun muss, als nur diese Methoden? Sagen wir, ich hätte eine Entität namens "Tournament" und ich möchte alle Gruppen in diesem Turnier bekommen, wo würde die "GetTournamentGroups" -Methode laufen?
Soll ich anstelle eines generischen Repositorys eine Basisrepository-Schnittstelle schreiben, von der alle eigenen Schnittstellen der Entitäten erben, und dann einfach die zusätzlichen Methoden hinzufügen, die für jede Entität benötigt werden?
Ok, das macht Sinn, ich dachte nur, mit dem Repository-Muster sollten Sie Ihre Entitäten frei von Methoden halten und nur die Eigenschaften darin haben. Habe ich das falsch verstanden? – Mekswoll
Wenn Sie Entitäten nur als Datenübertragungsobjekte betrachten, ist Ihr Verständnis korrekt. In meinem Beispiel ist TournamentModel keine Entität, sondern Teil der Business-Schicht (Entitätsklassen sind Turnier und Gruppe). –