使用NHibernate编写计算属性

使用NHibernate编写计算属性,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我正在使用NHibernate 2.1.2+流利的NHibernate 我有一个ContactInfo类和表。在数据库(SQL Server)中使用EncryptBypassPhase/DecryptBypassPhase对Name列进行加密 以下是相关的模式/类/映射位: table ContactInfo( int Id, varbinary(108) Name) public class ContactInfo { public virtual int Id { get; s

我正在使用NHibernate 2.1.2+流利的NHibernate

我有一个
ContactInfo
类和表。在数据库(SQL Server)中使用
EncryptBypassPhase
/
DecryptBypassPhase
Name
列进行加密

以下是相关的模式/类/映射位:

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))");
  }
}
表格联系人信息(
int Id,
varbinary(108)名称)
公共类联系人信息
{
公共虚拟整数Id{get;set;}
公共虚拟字符串名称{get;set;}
}
公共类ContactInfoMap:ClassMap
{
公共联系人信息地图()
{
Id(x=>x.Id);
映射(x=>x.Name)
.公式(“转换(nvarchar,短语('passphrase',Name))”;
}
}
使用如上所述的
公式
方法,可以从数据库中正确读取值,但NHibernate在保存到数据库时不会尝试插入/更新值(这很有意义)

问题是,我希望能够使用相应的
加密短语
函数写入
名称
值。我不确定NHibernate是否支持这一点,如果支持,我就无法找到正确的词来有效地搜索文档

所以。。。如何使用NHibernate将此计算属性写回数据库


提前谢谢

映射到公式的属性是只读的

封装在ContactInfoNameUpdater服务中的命名查询可能是解决此问题的一种方法