我处于令人羡慕的状态,必须与遗留数据库集成,幸运的是出于读取目的,并选择使用NHibernate。到目前为止,一切都很好,但我有一个新的要求让我摸不着头脑。
在今天之前,我在表格中有一列可以充当鉴别器,但现在事实证明,在某些情况下,我需要有多个鉴别器列。 NHibernate有可能吗?
我已经研究过使用可行的公式,但现在我遇到的问题是我需要排除'未知'子类(那些还没有映射的子类)。例如,我有这个:
DiscriminateSubClassesOnColumn("")
.Formula("case ... when ... then ... when .. then ... else 'unknown' end");
我希望能够过滤掉所有“未知”的内容......
编辑:我认为可能的解决方案是使用AlwaysSelectWithValue()
,这有什么影响?我相信它与nhibernate mapping xml中的force
相同。
答案 0 :(得分:2)
public BaseClassMap()
{
Where("discriminatorColumn <> 'unknown'");
// or
Where("discriminatorColumn = 'known1' or discriminatorColumn = 'known2'");
}