C# 使用nhibernate和mvc进行分页
我发现了使用nhibernate进行分页的非常有趣的教程 这些C# 使用nhibernate和mvc进行分页,c#,asp.net-mvc,nhibernate,pagination,C#,Asp.net Mvc,Nhibernate,Pagination,我发现了使用nhibernate进行分页的非常有趣的教程 这些publicpagedlistgetpaged(intpageindex,intpagesize)query如何被重写以在没有期货的情况下使用(主要原因是我应该有其他数据库的工作版本,如firbird等) 或者,如果您有其他有趣的分页教程要分享,请这样做 谢谢您只需创建查询,而无需期货。唯一的区别是,您将有两次到数据库的往返,而不是一次。我不认为这在你的场景中是个问题 像这样的方法应该会奏效: using (ISession ses
publicpagedlistgetpaged(intpageindex,intpagesize)
query如何被重写以在没有期货的情况下使用(主要原因是我应该有其他数据库的工作版本,如firbird等)
或者,如果您有其他有趣的分页教程要分享,请这样做
谢谢您只需创建查询,而无需
期货
。唯一的区别是,您将有两次到数据库的往返,而不是一次。我不认为这在你的场景中是个问题
像这样的方法应该会奏效:
using (ISession session = NHibernateHelper.OpenSession())
{
var rowCount = session.CreateCriteria<PSScript>()
.SetProjection(Projections.RowCount())
.UniqueResult<Int32>();
var results = session.CreateCriteria<PSScript>()
.SetFirstResult((pageIndex - 1) * pageSize)
.SetMaxResults(pageSize)
.ToList<PSScript>();
return new PagedList<PSScript>(results, pageSize, pageSize, rowCount);
}
使用(ISession session=NHibernateHelper.OpenSession())
{
var rowCount=session.CreateCriteria()
.SetProjection(Projections.RowCount())
.UniqueResult();
var results=session.CreateCriteria()
.SetFirstResult((页面索引-1)*页面大小)
.SetMaxResults(页面大小)
.ToList();
返回新的页面列表(结果、页面大小、页面大小、行数);
}
如果我没有提出太多要求,您能给我举一个具体的例子吗?在您的视图中,您将数据绑定到什么?如果您绑定到一个表或网格,我发现自动魔法分页在NHibernate中工作得很好。