Можно ли внедрить пользовательскую постобработку в выборку объектов в NHibernate? - PullRequest
1 голос
/ 19 ноября 2009

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

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

  • Добавление пользовательских метаданных в отображение - возможно ли это вообще?
  • Зарегистрируй пост-зацепку зацепки - надеюсь, это возможно, не знаю как это сделать.
  • Каждый раз, когда вызывается метод ловушки, он будет наблюдать пользовательский атрибут в метаданных и соответственно выполнять пользовательскую постобработку.

Я действительно не знаю, возможна ли моя схема. Кто-нибудь может дать какие-нибудь подсказки по этому поводу?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 19 ноября 2009

Вы можете добавить пользовательские данные в сопоставление, но это может сделать недействительной схему xml. Почему бы не добавить свои пользовательские атрибуты в отдельные файлы, поддерживаемые вашей логикой? (или еще лучше использовать встроенные языковые атрибуты для учеников). Что касается постобработки, проверьте свойство NHibernate.Cfg.Configuration.EventListeners. Вы можете подключить своих слушателей там.

3 голосов
/ 19 ноября 2009

В зависимости от того, что вы имеете в виду под постобработкой, вам следует изучить события и списки событий NHibernate. Например, nhibernate.info , интерфейс IPostLoadEventListener подходит для вашего случая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...