【发布时间】:2011-10-27 23:40:05
【问题描述】:
版本 nHibernate 2.1
从大量类似问题中可以看出 - 我们并不是唯一遇到分页生成重复问题的人。我们认为这只是发生在 HQL 查询中,但我们的一位客户报告说在查询是 Criteria 查询的地方看到了这种情况。
到目前为止,我们只在报告方面看到它 - 我们倾向于从各种“关联”实体收集信息位并使用 AliasToBeanTransformer 将其放入 DTO (DataTransferObject):
.SetResultTransformer(new AliasToBeanResultTransformer(typeof(OurDTO)));
我们对 nHibernate 并不陌生,但我们当然不知道它的许多微妙之处,因此不知道
新的 NHibernate.Transform.DistinctRootEntityResultTransformer()
这可能会消除我们的重复项,但我正在努力了解当它不是映射实体(即 DTO)时我们如何做到这一点。
我们已尝试创建一种自定义方言,该方言似乎已经为某些人提供了良好的服务,足以让他们对一致的行为充满信心。
我意识到没有灵丹妙药,上下文总是最重要的,但是有没有人设法为此想出解决方案?
我们用来处理页面排序的代码如下:
query.SetMaxResults(50);
for (int i = 0; ; ++i)
{
query.SetFirstResult(i * 50);
IList results = query.List();
cumulativeResults.AddRange(results);
OnRecordsLoaded(results.Count);
if (results.Count < 50)
{ break; }
非常感谢您对此的任何意见。 亲切的问候 科林
【问题讨论】:
标签: nhibernate