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