我在一个函数中进行查询设置,产生重复的根实体。我添加了变换器以删除重复项。这是按预期工作的。但是,当我添加分页时,我们遇到了问题。例: 我有30条记录,删除5条重复记录,剩下25条记录。当我添加页面大小为10的分页时,我将在第一页上获得8条记录,在第二页上获得9条记录。我能想出的唯一解决方案是拉出所有不同的记录,然后使用linq进行一个take并跳过来实现分页。我使用这种方法的问题是我正在做的这个网站有超过10,000条记录,它需要永远(60秒)。任何帮助将不胜感激。
提前致谢。
ICriteria query = FluentSessionManager.GetSession()
.CreateCriteria<PatientsPickupMaintRequests>();
query.CreateAlias("PatientsPickupMaintRequestsToPatientsEquipment", "ppmrtpe");
query.CreateAlias("ppmrtpe.PatientsEquipment", "pe");
query.CreateAlias("pe.Patients", "p");
query.CreateAlias("p.Facilities", "f");
query.CreateAlias("p.Locations", "l");
query.CreateAlias("l.Branches", "b");
query.Add(Expression.Eq("b.ID", branchID));
query.SetResultTransformer(Transformers.DistinctRootEntity);
query.SetFirstResult(startIndex).SetMaxResults(rowCount);
return query.List<PatientsPickupMaintRequests>();