假设对象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/