如何拦截RavenDb Session.SaveChanges()

时间:2017-10-16 15:25:17

标签: ravendb

我正在寻找拦截Session.SaveChanges()的方法,以便我可以使用相同的会话实例执行一些额外的工作(在某些情况下这很方便)。

编辑:重新使用会话的重点是,我需要在同一交易中运行更多工作。

我已经知道(并使用)IDocumentStoreListener - 但这个界面没有帮助,因为它不能让我访问当前会话。

我无法在RavenDb文档中找到任何关于拦截对SaveChanges的调用并获取当前会话句柄的方法。有谁知道一种方式?

1 个答案:

答案 0 :(得分:0)

打开一个免费的新会话(就性能而言),我认为 IDocumentStoreListener 已经被认为是您正在寻找的东西。我不知道其他人如你所说的那样有效。

实施 void AfterStore(string key, object entityInstance, RavenJObject metadata); 您拥有有关存储实体的所有信息,然后您可以执行您需要的操作