我的实体看起来像那样(简化):
public class Person
{
public Guid Id { get; set; }
public string Name { get; set; }
public IList<Department> Departments { get; set; }
}
public class Department
{
public Guid Id { get; set; }
public string Name { get; set; }
}
我通过条件api查询数据库,所有人都有一个具有特定名称的部门应该与喜欢的模式匹配。
一个人包含两个或多个部门,其名称包含查询使用的相同字符序列。因此,多次返回同一个人。为了抑制这一点,我知道我可以使用criteria.SetResultTransformer(Transformers.DistinctRootEntity);
,但只有在没有分页的情况下,这才有效。
当我分页结果时,我不仅需要获取第一页,而且还需要知道总共有多少实体。不幸的是,调用criteria.SetProjection(Projections.RowCount())
时结果转换器不起作用,因为没有结果要转换。
我可以以某种方式避免使用结果转换器检索整个人员列表,然后手动将正确的部分从集合中取出来吗?
最诚挚的问候 Oliver Hanappi