NHibernateUtil.Initialize和Table where子句(软删除)

时间:2011-02-21 05:29:58

标签: c# nhibernate fluent-nhibernate lazy-loading eager-loading

我们正在使用NHibernate但有时使用NHibernateUtil.Initialize调用手动加载代理。我们还使用软删除,并在所有映射到表的地方都有“where”条件。 NHibernate生成的SQL成功添加了where条件(即DELETED为NULL)但是我们注意到NHibernateUtil.Initialize没有观察到映射文件的约束。

即。 NHibernateUtil.Initialize生成的SQL都没有观察到我们的DELETED IS NULL条件。

我们是否遗漏了一些内容,因为我们真的希望在情况需要时手动加载某些实体集合。

我们正在使用FluentNhibernate进行映射。

1 个答案:

答案 0 :(得分:1)

找到了这个问题的答案。正如我原先想的那样,这不是NHibernateUtil.Initialize的问题。它与我们在FluentNHibernate中的HasMany映射有关,需要一个“Where”条件,就像我们对每个表一样。

添加“Where”条件后,对加载代理的任何调用都会导致正确的数据检索。