Я согласен с Диего, что не думаю, что есть лучшая практика.Это зависит от контекста вашего приложения.В ссылке Диего и для использования прослушивателей событий на уровне постоянства (nHibernate) необходимо знать, как искать текущего пользователя.Это может не иметь смысла в зависимости от вашего приложения.Например, если вы пишете приложение ASP.NET MVC, действительно ли вы хотите, чтобы ваш уровень персистентности зависел от HttpContext, чтобы знать пользователя?Да, вы могли бы передать какую-то стратегию, но это не похоже на то, что это всегда будет правильным решением.
Я думаю, что вполне допустимо, чтобы ваш сервисный уровень создал объект и добавилсам создатель.Затем передайте весь объект, когда создатель уже увлажнен, до nHibernate для сохранения.Создатель будет сохранен в базе данных так же, как и любое другое свойство.