refactor db.SaveChanges into virtual SaveChanges