Я использую операцию BulkInsert в RavenDB 4.0.6 для вставки нескольких продуктов:
using (var bulk = Store.BulkInsert())
{
foreach (var p in products)
{
p.Id = string.Empty; // <-- notice this
await bulk.StoreAsync(p);
}
}
Обратите внимание, что я намеренно пропускаю стратегию создания идентификатора, явно указав string.Empty
в качестве значенияId собственности.Это основано на документах RavenDB, секция Autogenerated ID's .
При выполнении кода я получаю сообщение об ошибке:
System.InvalidOperationException: идентификатор документа должен иметь непустое значение
, который напрямую создаетсяэта кодовая строка в BulkInsertOperation.cs .
Мой вопрос как я могу предотвратить эту ошибку и при этом сохранить ту же стратегию генерации идентификаторов, что и мой другой код?
Например, я никогда не устанавливал для свойства Id ничего, кроме string.Empty
.И я боюсь, что установка, например, Guid.NewGuid.ToString()
может вызвать другие проблемы (см. Также этот вопрос ).