IGenericRepository.cs 1.0 KB

12345678910111213141516171819202122232425262728
  1. using System.Linq.Expressions;
  2. namespace AipGateway.API.Domain.IRepositories.IGenericRepositories
  3. {
  4. public interface IGenericRepository<T> : IQueriesRepository<T> where T : class
  5. {
  6. Task<T> GetAsync(int id);
  7. Task<T> GetByString(string id);
  8. Task<T> GetFirstOrDefaultAsync(Expression<Func<T, bool>> predicate, params Expression<Func<T, object>>[] includes);
  9. Task<IEnumerable<T>> GetWhereAsync(Expression<Func<T, bool>> predicate, params Expression<Func<T, object>>[] includes);
  10. Task<T> GetFirstOrDefaultAsync(Expression<Func<T, bool>> predicate);
  11. Task<IEnumerable<T>> GetAllAsync(params Expression<Func<T, object>>[] includes);
  12. Task AddAsync(T entity);
  13. Task AddRangeAsync(IEnumerable<T> entity);
  14. void Update(T entity);
  15. void Delete(T entity);
  16. void DeleteRange(IEnumerable<T> entities);
  17. Task<bool> ExistsAsync(Expression<Func<T, bool>> predicate);
  18. IEnumerable<T> ExecWithStoreProcedure(string query, params object[] parameters);
  19. }
  20. }