2

我正在尝试在从 RavenDB 加载的对象上运行一些代码,并且我需要在对象已加载其属性值之后立即执行此操作。

我尝试使用 CustomCreationConverter 并覆盖 ReadJson 来拦截反序列化过程,但是我可以访问的对象具有所有属性集,除了我需要的属性:Id。为了做到这一点,我可以在其他地方插入管道吗?

4

1 回答 1

2

您看不到 ID 的原因是它不是文档的一部分,它在元数据中为@id.

如果你想拦截客户端,你可以注册一个自定义的Conversion Listener。创建一个实现IDocumentConversionListener并注册它的类documentStore.RegisterListener()。在该DocumentToEntity方法中,您可以运行您的自定义逻辑。一般来说,Listeners 文档缺乏,但还有另一个主题也使用它们: http ://ravendb.net/kb/16/using-optimistic-concurrency-in-real-world-scenarios

另一种选择是添加一个在服务器端拦截的包。为此,您将使用Read Trigger

于 2012-11-23T17:40:50.763 回答