【问题标题】:Writing computed properties with NHibernate使用 NHibernate 编写计算属性
【发布时间】:2010-12-20 13:21:20
【问题描述】:

我正在使用 NHibernate 2.1.2 + Fluent 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 在保存到数据库时不会尝试插入/更新值(这是有道理的)。

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

那么...如何使用 NHibernate 将此计算属性写回数据库?

提前致谢!

【问题讨论】:

    标签: nhibernate fluent-nhibernate


    【解决方案1】:

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

    包含在 ContactInfoNameUpdater 服务中的命名查询可能是解决问题的一种方法。

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多