Я использую NHibernate 2.1.2 + Свободный NHibernate
У меня есть ContactInfo
класс и таблица. Столбец Name
зашифрован в базе данных (SQL Server) с использованием EncryptByPassphrase
/ DecryptByPassphrase
.
Ниже приведены соответствующие биты схемы / класса / отображения:
table ContactInfo(
int Id,
varbinary(108) Name)
public class ContactInfo
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
public class ContactInfoMap : ClassMap<ContactInfo>
{
public ContactInfoMap()
{
Id(x => x.Id);
Map(x => x.Name)
.Formula("Convert(nvarchar, DecryptByPassPhrase('passphrase', Name))");
}
}
При использовании подхода Formula
, как указано выше, значения корректно считываются из базы данных, но NHibernate не пытается вставить / обновить значения при сохранении в базе данных (что имеет смысл).
Проблема в том, что я хотел бы иметь возможность записать значение Name
, используя соответствующую функцию EncryptByPassPhrase
. Я не уверен, поддерживает ли NHibernate это, и если это так, я не смог найти правильные слова для эффективного поиска документации.
Итак ... как я могу записать это вычисленное свойство обратно в базу данных с помощью NHibernate?
Заранее спасибо!