我有一个使用NHibernate的分页:
public IEnumerable<Answer> GetAnswers(int page, int pageSize)
{
return HibernateTemplate.Execute(
session =>
{
var criteria = session.CreateCriteria(typeof(Answer));
return criteria
.SetFirstResult((page - 1) * pageSize)
.SetMaxResults(pageSize).List<Answer>();
}
);
}
现在我的任务是确定在哪个页面上放置具体的Answer对象。我该怎么做? nhibernate是否提供了一些信息,比如结果集中的行索引?
答案 0 :(得分:1)
NHibernate HQL为此提供了索引功能。
public int GetRowIndex(Answer answer)
{
return HibernateTemplate.Execute(
session =>
{
return session.CreateQuery(
"select index(a) from Answer a").UniqueResult<int>();
});
}
我没有测试过代码,但您可以从NHibernate doc在线获取更多信息(过期版本):https://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html_single/#queryhql-expressions