假设对象A有一个B对象的列表,并且B被链接到一个C。

使用NHibernate,如果我将其更新为C实例,如何通知与A的一个实例(和哪个实例)关联的“内容”已更新?

使用拦截器,我知道C已更新,但是如何自动遵循C-> B-> A的方式(例如,C不知道B,并且C并不总是聚合根)。

最佳答案

根据映射的具体情况,每次修改实体B时,您始终可以搜索链接的C实体。假定B通过外键关系与C相关,则可以搜索具有与B实体主键相等的外键的所有B(或单个C)。

如果同时B不知道A,则可以使用类似的过程来通知与它相关的A实例。或者,如果B具有指向A的链接,则可以改用该关系。

具体的实现方式取决于您将这些实体精确地映射在一起的方式。

关于c# - NHibernate和拦截器在聚合根中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16893904/

10-09 22:47