The thing is we sometimes do value generation at Add and SaveChanges. For example, for Identity or its moral equivalent using sequences. So one enum saying when we do value generation doesn't really work.