Ответ 1
Перехватчики могут сделать это:
http://www.nhforge.org/doc/nh/en/index.html#manipulatingdata-interceptors (9.10, ссылка не всегда работает).
Вырезать/вставить из документа:
public class AuditInterceptor : IInterceptor
{
...
public boolean OnSave(object entity,
object id,
object[] state,
string[] propertyNames,
IType[] types)
{
if ( entity is IAuditable )
{
for ( int i=0; i<propertyNames.Length; i++ )
{
if ( "CreateTimestamp" == propertyNames[i] )
{
state[i] = DateTime.Now;
return true;
}
}
}
return false;
}
}
OnFlushDirty() может использоваться для UpdDate.
Вам понадобится всякая сущность, которая имеет CreateDate/UpdateDate для реализации интерфейса, чтобы перехватчик мог проверить, должен ли он действовать (в приведенном примере это IAuditable).
Изменить
Только что заметил главу 11: Перехватчики и события. Вы можете наследовать от EmptyInterceptor, что упрощает работу, если вам нужно только переопределить некоторые из методов.
Я никогда не использовал Events.