Связанный пост здесь - Как синхронизировать изменения в nosql db (ravendb)
Я бы просто сохранил поле UserId внутри EmailDocument, которое предоставляет ссылку на конкретного пользователя. Raven предоставляет функцию включения для извлечения связанных документов в текущем сеансе / запросе, без (или, по крайней мере, очень мало - Raven оптимизируется для чтения в конце концов) дополнительных затрат и без дополнительного запроса GET.
http://docs.ravendb.net/consumer/querying/handling-document-relationships.html
var email = session.Include<EmailDocument>(x => x.UserId)
.Load(id);
var user = session.Load<User>(email.UserId);
Это приведет к одному GET-запросу, который извлекает оба документа, и у вас также будет вся дополнительная информация, которую предоставляет пользовательский документ, вы можете построить свои модели представления из обоих объектов. Вы также избавите себя от необходимости отслеживать изменения имен и обновлять каждый документ, когда эти изменения происходят.