7

我处于不得不与遗留数据库集成的令人羡慕的情况,幸运的是用于只读目的,并且选择使用 NHibernate。到目前为止,一切都很好,但我有一个新的要求让我摸不着头脑。

在今天之前,我在表格中有一个列可以用作鉴别器,但现在事实证明,在某些情况下,我需要有多个鉴别器列。NHibernate 有可能吗?

我已经研究过使用有效的公式,但现在我有一个问题,我需要排除“未知”子类(那些还没有映射的子类)。例如我有这个:

DiscriminateSubClassesOnColumn("")
    .Formula("case ... when ... then ... when .. then ... else 'unknown' end");

我希望能够过滤掉所有“未知”的东西......

编辑:我认为一个可能的解决方案是使用AlwaysSelectWithValue(),启用它有什么含义?我相信它与forcenhibernate 映射 xml 中的相同。

4

1 回答 1

2
public BaseClassMap()
{
    Where("discriminatorColumn <> 'unknown'");
    // or
    Where("discriminatorColumn = 'known1' or discriminatorColumn = 'known2'");
}
于 2011-11-16T16:43:21.097 回答