使用NHibernate编写计算属性
我正在使用NHibernate 2.1.2+流利的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
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服务中的命名查询可能是解决此问题的一种方法