在将多个类移动到新的命名空间后,我需要更新RavenDB Raven-Clr-Type
.
Example Old Metadata:个
"@metadata": {
"@collection": "SomeClass",
"Raven-Clr-Type": "BO.SomeClass, BO"
}
Example New Metadata:个
"@metadata": {
"@collection": "SomeClass",
"Raven-Clr-Type": "BO.SubNamespace.SomeClass, BO.SubNamespace"
}
我考虑过的一种方法是加载一个带有Query
的集合,对列表进行迭代,并在数据库中分别对每个对象使用Store
.这似乎工作得很好,但不幸的是,单独存储每个对象对于大型集合来说效率非常低.我曾try 使用RavenDB的Bulk Insert
方法作为替代方法,但它似乎并没有更新Raven-Clr-Type
,只是更新了"数据".
在名称空间更改后需要更新Raven-Clr-Type与我们如何按ID查询相关联.当按ID加载对象时,我们执行严格的类型判断,如果名称空间不匹配,我们将返回错误.
using var bulkInsertOperation = Store.BulkInsert(new BulkInsertOptions
{
SkipOverwriteIfUnchanged = false
});
foreach (var item in list)
{
bulkInsertOperation.Store(item);
}
我的问题是:
- 实现我的目标最有效的方法是什么?