Книга Дракона является определенно "книгой" компиляторов здания, но если Ваш язык не является вполне столь же сложным как текущее поколение языков, Вы можете хотеть посмотреть на шаблон Интерпретатора от Шаблоны разработки .
пример в дизайне книги подобный регулярному выражению язык и хорошо продуманы, но как они говорят в книге, это хорошо для продумывания процесса, но эффективно действительно только на маленьких языках. Однако это намного быстрее для записи Интерпретатора для маленького языка с этим шаблоном, чем необходимость узнать обо всех различных типах синтаксических анализаторов, yacc и закона, и так далее...
Два варианта.
если база данных полностью отвечает за это, вам просто нужно чтобы сообщить NHibernate, что свойство создано, и не включать его ни в какие обновления / иснерты. Обратной стороной является то, что NH потребуется сделать дополнительный выбор, чтобы значение оставалось свежим в памяти.
если база данных не несет ответственности, и вы просто хотите, чтобы это выполнялось автоматически, вы можете использовать перехватчик, чтобы установить значение 1 при вставке и увеличить его на 1 при обновлении.
http://www.nhforge.org/doc/nh/en/index.html#objectstate-interceptors (11.1 - Перехватчики)
Вы должны переопределить OnSave (), чтобы найти свойство и установить начальное значение, а затем переопределите OnFlushDirty (), чтобы найти свойство свойства и приращение.
Изменить:
Я идиот, не заметил, как вы сказали Fluent NHibernate.
Изменить № 2:
I Думаете, вам также может быть интересно использовать этот столбец для контроля версий?
< version name="Foo" generated="always" />