Tag: detachedcriteria

如何序列化NHibernate DetachedCriteria对象?

我正在寻找一个解决方案来将NHibernate DetachedCriteria对象持久化到数据库。 我已经跟踪了NHibernateUtil和GetSerializable方法,但我不确定如何使用它来序列化DetachedCriteria对象。 任何有关这方面的帮助将不胜感激。 谢谢。

在NHibernate中,使用Disjunction可以得到双重结果

我正在尝试使用DetachedCriteria进行选择,我想在运行时添加OR分隔的几个条件。 如果我使用: Restrictions.Or( cond1, Restrictions.Or(cond2, Restrictions.Or(cond3, cond4)) ) 我得到了我想要的结果。 但如果我像这样使用Disjunction: var disjunction = Restrictions.Disjunction(); disjunction.Add(cond1); disjunction.Add(cond2); disjunction.Add(cond3); disjunction.Add(cond4); 我有cond1和cond2的实体对他们来说是真的,在结果我得到它们两次(在列表结果中相同的实体被返回两次)。 我不想使用QueryOver,因为我正在尝试使用QueryOver来完成一些难以实现的事情(我正在尝试做的最终结果是从filter的json获取sql查询)。 什么导致分离返回双打? 有没有办法在最后添加DISTINCT? 我做错了,我不应该在同一张桌子上使用析取不同的条件吗? 更新: 对于DISTINCT部分: criteria.SetResultTransformer(new NHibernate.Transform.DistinctRootEntityResultTransformer()); 要么 Projections.Distinct(Projections.Id()) 真正的解决方案如RadimKöhler所述 – 正确使用子查询。