Есть несколько похожих вопросов, таких как этот:
Несопоставленные столбцы в NHibernate?
Однако IInterceptor
кажется излишним для изменения в одной вставке сущности. И EventListeners
не совсем хорошо документированы, а также слишком сложны для одного столбца.
Итак, я выбрал решение, которое я считаю как наиболее многоразовым, так и наиболее локальным:
<property name="Text" type="StringWithMD5HashUserType">
<column name="Text" length="20000" not-null="true" />
<column name="TextHash" length="32" not-null="true" />
</property>
Где StringWithMD5HashUserType
- это ICompositeUserType
, который читает Text
из первого столбца, но записывает как Text
, так и Hash
(я не добавляю код StringWithMD5HashUserType
, потому что он слишком длинный, но по сути очень просто).