【发布时间】:2018-09-26 22:03:31
【问题描述】:
我正在使用 RavenDB 4.0.6 的 BulkInsert 操作插入一堆产品:
using (var bulk = Store.BulkInsert())
{
foreach (var p in products)
{
p.Id = string.Empty; // <-- notice this
await bulk.StoreAsync(p);
}
}
请注意,我通过显式提供 string.Empty 作为 Id 属性的值来故意跳过标识符创建策略。这是基于 RavenDB 文档section Autogenerated ID's。
运行代码时出现错误:
System.InvalidOperationException : 文档 ID 必须具有非空值
这是由BulkInsertOperation.cs中的这个coden-p直接产生的。
我的问题是我怎样才能防止这个错误并且仍然保持与我的其他代码相同的 ID 生成策略?
例如我从未将 Id 属性设置为 string.Empty 以外的任何值。而且我担心将其设置为例如Guid.NewGuid.ToString() 可能会导致其他问题(也请参阅this question)。
【问题讨论】: