【发布时间】:2014-06-21 22:27:06
【问题描述】:
考虑两个实体Person,它们有一个one-to-many集合Vehicles
public class Person
{
public IList<Vehicle> Vehicles { get; set;}
}
public class Vehicle
{
public string Name { get; set;}
public Person Owner { get; set; }
}
我显示一个有车辆的人的网格,并在网格中显示第一辆车的名称。网格是分页的。我使用以下标准来获取数据
我有一个为网格视图加载数据的标准
var criteria = DetachedCriteria.For<Person>()
.CreateAlias("Vehicles","vehicle", JoinType.InnerJoin)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.SetMaxResults(pageSize)
.SetFirstResult((page - 1) * pageSize)
criteria.Add(Restrictions.Eq("vehicle.Name", "super"));
其中page 和pageSize 是计算位。
问题是由于最大结果和第一个结果是在数据库中计算的,并且不同的根是在外部完成的,所以行数不匹配。
有没有办法解决这个问题?
【问题讨论】:
-
执行一个查询/条件,首先检索行数,然后这个检索数据。
标签: c# nhibernate pagination nhibernate-criteria