Documents can be loaded by id from the IDocumentSession
interface, either one at a time or by an enumerable of id values. The load by id functionality
again supports Guid's, integers, long integers, and strings.
Synchronous Loading
The syntax is shown below:
public void load_by_id(IDocumentSession session)
{
var userId = Guid.NewGuid();
// Load a single document identified by a Guid
var user = session.Load<User>(userId);
// There's an overload of Load for integers and longs
var doc = session.Load<IntDoc>(15);
// Another overload for documents identified by strings
var doc2 = session.Load<StringDoc>("Hank");
// Load multiple documents by a group of id's
var users = session.LoadMany<User>(Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid());
var ids = new Guid[] { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() };
// If you already have an array of id values
var users2 = session.LoadMany<User>(ids);
}
Asynchronous Loading
TODO(need a sample of async loading)