public void Delete <TEntity>(TEntity entity) where TEntity : class
 {
     try
     {
         _dbContext.Remove(entity);
     }
     catch (Exception)
     {
         throw; // why do i need this? if so then why do we need try/catch?
     }
 }