I assume you're using SQL Server 2012? As far as I'm aware, this behaviour is due to the way that SQL server itself preallocates and caches identity values for a column in order to improve performance, I don't think there is any way to control this through EF.
The ways around this if you require gapless sequences that I know of are:
- Use a sequence object with the no cache property
- Enable trace flag T272 which will disable the preallocation of identity values and revert to the SQL Server 2008 R2 type behaviour
Just to clarify, when I say gapless, I mean that if the SQL service restarts unexpectedly the sequence will always start from where it was last as every change is written to the system tables, you can still get gaps in the sequence by other means such as transactions rolling back etc.