How-To get consecutive id with RavenDb default id generator

Solution 1:

This is by design - new HiLo keys are generated whenever you create a DocumentStore instance, so the gaps you are seeing are the unused ids from the other session.

Why do you care for consecutive ids?

This may be a good read on the subject, too: http://groups.google.com/group/ravendb/browse_thread/thread/3dbcacbc8b366ff8/

Solution 2:

From the RavenDb documents, you're after the Identity strategy.

RavenDB also supports the notion of Identity, for example if you need IDs to be consecutive. By creating a string Id property in your entity, and setting it to a value ending with a slash (/), you can tell RavenDB to use that as a key perfix for your entity. That prefix followed by the next available integer ID for it will be your entity's ID after you call SaveChanges().

eg.

var foo = new Foo();
foo.Id = "foo/"; // <-- this will use the Identity strategy, not HiLo.

session.Store(foo);
session.SaveChanges();