如何在.net6的RavenDB中验证更新是否成功?



下面是更新RavenDB中现有实体的更新代码。下面的代码有时工作有时不起作用.

using var session = GetDocumentStore().OpenAsyncSession();
var stored = await session.LoadAsync<Bundle>(bundle.Id);
stored = Mapper.Map(bundle, stored);
await session.SaveChangesAsync();

没有任何异常警告当上面的代码块执行时,更新没有发生。如果需要更多的东西来支持这个问题,请告诉我。

我需要验证是否更新成功与否。有什么方法可以验证在RavenDB中更新是否成功?

如果没有异常,包括您的更新在内的批处理命令已经成功。在大多数情况下,文档"没有更新"。是因为另一个请求修改了它。如果您配置数据库/集合的修订,您可以跟踪文档修改- https://ravendb.net/docs/article-page/4.2/csharp/server/extensions/revisions

基于此文档,SaveChangesAsync为无效类型。所以在我看来有两个选择:


1-使用Try…Catch块在这种情况下,如果DB抛出任何异常,您可以处理它。
2-if验证非常重要。您可以通过ID获取它,然后验证。

最新更新