服务器嵌入式版本中的 RavenDb 补丁 api

RavenDb patch api in embedded version of the server

内嵌版和标准版服务器的补丁api有区别吗?

是否需要以某种方式配置文档存储以启用补丁 api?

我正在编写一个使用嵌入式 raven 的测试。该代码在标准版本上可以正常工作,但在测试中却不能。我不断收到补丁结果:DocumentDoesNotExists。我用调试器检查过,文件存在于商店中 - 所以这不是测试的问题。

在这里你可以找到我的问题的重现:https://gist.github.com/pblachut/c2e0e227fa3beb51f4f9403505c292bb

我已经联系了 ravendb 支持部门的联系人,我的问题得到了回答。

内嵌版和普通版服务器应该没什么区别。问题是我没有明确传递要调用批处理命令的数据库。结果我试图在系统数据库中修补文档。

var result = await documentStore.AsyncDatabaseCommands.ForDatabase("testDb).BatchAsync(new[] {command});

我假设数据库名称将从会话中获取(因为我从那里获取 documentStore)。但是应该始终传递数据库名称。

var documentStore = session.Advanced.DocumentStore;