public async Task DeleteAsync(TEntity entity) { if (entity == null) { throw new ArgumentNullException("entity"); } var isDetached = !_db.Set <TEntity>().Local.Any(a => a.Id == entity.Id); if (isDetached) { _db.Entry(entity).State = EntityState.Modified; } _db.Set <TEntity>().Remove(entity); await _db.SaveChangesAsync(); }