2013-06-03 1 views
2

Предполагая, что объект A имеет список объектов B, а B связан с C.NHibernate и Interceptor в совокупном корне

Использование NHibernate, если я обновляюсь как экземпляр C, как я могу быть уведомлен о том, что «что-то» связано с одним экземпляром (и каким экземпляром) A было обновлено?

Использование перехватчика Я знаю, что C был обновлен, но как следует автоматически следовать C -> B -> A (например, C не знает B, а C не всегда является совокупным корнем).

ответ

0

В зависимости от специфики вашего сопоставления вы всегда можете найти связанные объекты B каждый раз, когда изменяется объект C. Учитывая, что B связан с C отношением внешнего ключа, вы можете искать все B (или только B), который имеет внешний ключ, равный первичному ключу сущностей C.

Если в то же время B не знает о себе A, вы можете использовать подобную процедуру, чтобы уведомить, к какому экземпляру относится A. Или, если с другой стороны B имеет ссылку на A, вы можете использовать эту связь вместо этого.

Конкретная реализация будет зависеть от того, как именно вы сопоставляете эти объекты вместе.

+0

Вы хотите создать NH-перехватчик, и когда обновленный объект имеет тип 'C', выполните запрос или перейдите по ссылкам, чтобы найти' B', а затем 'A'? – PascalT

+0

Если у вас нет отношений, установленных с 'C' до' B', или от 'B' до' A', тогда да. – rae1

Смежные вопросы