События NHibernate и жизненного цикла - PullRequest
1 голос
/ 22 апреля 2009

Может ли кто-нибудь привести пример того, о чем Айенде говорит в пункте № 17 в своем списке 25 причин, по которым не нужно писать свой собственный объект реляционного сопоставителя

Может ли ADO.NET Entity Framework это сделать?

Ответы [ 2 ]

1 голос
/ 22 апреля 2009

Представьте себе модель членства с поддержкой AD, которая также хранит информацию в SQL. Когда пользователь создается, вы можете захотеть создать его как в AD, так и в SQL. События жизненного цикла дают вам возможность перехватывать определенные события, такие как «Создать обновление» и т. Д., Чтобы вы могли что-то сделать.

0 голосов
/ 22 апреля 2009

NHibernate имеет систему событий, где вы получаете события (фактически обратные вызовы), когда NHibernate что-то делает с вашей сущностью. Обратные вызовы могут быть зарегистрированы в сеансе или просто реализованы в объекте с использованием интерфейса.

Есть много примеров использования такого обратного вызова, и это может быть жизненно важно для проекта. Многие люди пишут журналы аудита, используя эти обратные вызовы. Или просто обновить некоторые свойства, которые не хранятся в базе данных. Ayende, вероятно, означает, что "с извлечением данных также из других мест".

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

...