public async Task <TDocument> Load <TDocument>(string id) where TDocument : class { if (_identityMap.Get <TDocument>(id) != null) { return(_identityMap.Get <TDocument>(id)); } var entity = await InnerLoad <TDocument>(id); _identityMap.Set(id, entity); return(entity); }