1

我有一个名为 Owner 的 NHibernate 实体,它在数据库中有一个 SSN 列和一个 TaxID 列,我想根据不同属性的值有条件地将这两个值之一映射到 Owner 实体上更通用的属性,结构类型。因此,如果 StructureType 为“I”,我想将 SSN 值映射到通用属性,如果它的“C”我想将 TaxID 值映射到通用属性。这可能使用 Fluent NHibernate(甚至常规 NHibernate)吗?Owner 实体是只读实体,不会将任何内容写回数据库。

4

2 回答 2

3

我能够使用 Fluent NHibernate 中的公式解决这个问题:

Map(x => x.Identification)
.Formula("CASE WHEN StructureType = 'I' THEN SSN ELSE TaxID END");

(在我原来的帖子中,我说它介于“I”和“C”之间,但实际上只是介于“I”和其他所有类型之间)

于 2012-05-07T12:14:06.303 回答
1

为什么不添加只读属性?

public string Identification
{
   get
   {
       string identification = string.Empty;
       if (StructureType.Equals("I"))
           identification = SSN;
       else if (StructureType.Equals("C"))
           identification = TaxID;
       return identification;
   }
}
于 2012-05-04T17:56:59.440 回答