0
NHibernate通常相当聪明,如果在查询中不使用来自相关实体的字段,则多对一地省略连接。不过,我想这样做就没有再选择其他表中的公式识别器,所以我做了一个自定义的留存与如何强制NHibernate总是进行多对一的连接
protected override string DiscriminatorFormulaTemplate
{
get { return this.DiscriminatorFormula; }
}
,并指定只在公式的列名(不过这列名是从相关表)
<discriminator formula="TypeID" />
我知道这通常容易出现名称冲突,但在这种特定情况下,这不是问题。
所以现在我想强制相关的(many-to-one
)表总是加入到主表中。做这个的最好方式是什么?当HN检测到某些字段被使用时,它会加入一些时间,但我不知道如何强制它一直这样做。