public virtual async Task <int> Delete(int id) { var entity = new T { Id = id }; _dbContext.Attach(entity); _dbContext.Remove(entity); try { return(await _dbContext.SaveChangesAsync()); } catch (DbUpdateException due) { _logger.LogError(due.Message, due.InnerException); throw; } }