我正在使用NHibernate 2.1.2 + Fluent NHibernate
我有一个ContactInfo
类和表。使用Name
/ EncryptByPassphrase
在数据库(SQL Server)中加密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将这个计算属性写回数据库?
提前致谢!
答案 0 :(得分:0)
映射到公式的属性是只读的。
在ContactInfoNameUpdater服务中包含的命名查询可能是解决问题的一种方法。