RavenDb生成文档密钥
我需要为文档的子对象生成Id。生成文档密钥的当前语法是什么RavenDb生成文档密钥,ravendb,Ravendb,我需要为文档的子对象生成Id。生成文档密钥的当前语法是什么 session.Advanced.Conventions.GenerateDocumentKey(文档)不再存在。我找到了documentSession.Advanced.DocumentStore.Conventions.GenerateDocumentKey方法,但它的签名很奇怪:我对默认的密钥生成算法没有意见,我只想传递一个对象并接收一个Id。GenerateDocumentKey的默认实现是获取类的“动态标记名”,并附加一个斜杠
session.Advanced.Conventions.GenerateDocumentKey(文档)
不再存在。我找到了documentSession.Advanced.DocumentStore.Conventions.GenerateDocumentKey方法,但它的签名很奇怪:我对默认的密钥生成算法没有意见,我只想传递一个对象并接收一个Id。GenerateDocumentKey的默认实现是获取类的“动态标记名”,并附加一个斜杠。例如,类Foo
将变成Foos/
,然后通过,这样就可以在客户端分配ID,而无需每次咨询服务器
如果您真的想要这种行为,您可以尝试自己使用HiLoKeyGenerator,但是您是否考虑过更简单的方法?我不知道您的模型是什么,但如果子对象完全由包含文档所有(应该是在同一文档中),您有几个更简单的选项:
int NextChildThingId
属性,并在每次添加子对象时递增该属性Guid
,尽管通过电话阅读、键入、查看、比较或与他人交谈都没有乐趣