public interface IGenericRepository where T : class where TKey : IEquatable { Task GetAsync(TKey id); Task GetAsync(TKey id); Task> GetAllAsync(); Task> GetAllAsync(QueryParameters queryParameters) where TResult : class; Task AddAsync(T entity); Task UpdateAsync(T entity); Task DeleteAsync(TKey id); Task ExistsAsync(TKey id); }