我正在寻找拦截Session.SaveChanges()
的方法,以便我可以使用相同的会话实例执行一些额外的工作(在某些情况下这很方便)。
编辑:重新使用会话的重点是,我需要在同一交易中运行更多工作。
我已经知道(并使用)IDocumentStoreListener
- 但这个界面没有帮助,因为它不能让我访问当前会话。
我无法在RavenDb文档中找到任何关于拦截对SaveChanges的调用并获取当前会话句柄的方法。有谁知道一种方式?
答案 0 :(得分:0)
打开一个免费的新会话(就性能而言),我认为 IDocumentStoreListener 已经被认为是您正在寻找的东西。我不知道其他人如你所说的那样有效。
实施
void AfterStore(string key, object entityInstance, RavenJObject metadata);
您拥有有关存储实体的所有信息,然后您可以执行您需要的操作