我正处于不得不与遗留数据库集成的令人羡慕的境地,幸运的是,这是出于只读目的,并且选择了使用NHibernate。到目前为止,一切都很好,但我有一个新的要求,这让我抓狂。
今天之前,我在表中有一列用作鉴别器,但现在发现,在某些情况下,我需要有多个鉴别器列。使用NHibernate可以做到这一点吗?
我已经研究了使用公式,这是有效的,但现在我有一个问题,我需要排除‘未知’子类(那些还没有映射的子类)。例如,我有这样的例子:
DiscriminateSubClassesOnColumn("")
.Formula("case ... when ... then ... when .. then ... else 'unknown' end");我希望能够过滤掉所有“未知”的东西…
编辑:我认为一个可能的解决方案是使用AlwaysSelectWithValue(),启用它有什么影响?我相信它和nhibernate映射xml中的force是一样的。
发布于 2011-11-17 00:43:21
public BaseClassMap()
{
Where("discriminatorColumn <> 'unknown'");
// or
Where("discriminatorColumn = 'known1' or discriminatorColumn = 'known2'");
}https://stackoverflow.com/questions/8154997
复制相似问题