NHibernate分页的测试
生活随笔
收集整理的這篇文章主要介紹了
NHibernate分页的测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
???? 今天做項目的時候,要實現分頁查詢的功能,一開始的想法就是用SQL語句實現(項目數據操作是用Nhibernate),但認真考慮了下發現在所做的項目里實現會很麻煩,果斷放棄了用SQL語句。因為剛接觸NHibernate時間不長,對Nhibernate認識不深,但在做項目的這段時間里接觸它,發現Nhibernate真的很好用(以前怎么就沒有去了解它呢)。
???? 在Nhibernate里實現分頁很簡單,用?SetFirstResult?和SetMaxResults就可以實現,SetFirstResult?簡單的理解就是從第幾條記錄開始,SetMaxResults是取幾條記錄。以下是一個測試的代碼,從Customer表里取記錄,主要的就是GetCustomerListTest方法:
?
代碼 public partial class Default : System.Web.UI.Page
{
private ISession _session;
private SessionManager _helper;
private NHibernateSample _sample;
protected void Page_Load(object sender, EventArgs e)
{
_helper = new SessionManager();
_session = _helper.GetSession();
_sample = new NHibernateSample(_session);
}
protected void btnClick_Click(object sender, EventArgs e)
{
IList<Customer> customerList = GetCustomerListTest(5, 10, "select *from Customer");
int i=0;
string[] nameArrary = new string[customerList.Count];
foreach (Customer customer in customerList)
{
nameArrary[i] = customer.FirstName + customer.LastName;
i++;
}
foreach (var name in nameArrary)
{
Response.Write(name + "<br />");
}
}
/// <summary>
/// 分頁測試
/// </summary>
/// <param name="pageStart">開始查找的記錄條</param>
/// <param name="pageLimit">顯示數量</param>
/// <param name="sql"></param>
/// <returns></returns>
public IList<Customer> GetCustomerListTest(int pageStart, int pageLimit, string sql)
{
IList<Customer> customerList = _session.CreateSQLQuery(sql)
.SetFirstResult(pageStart)
.SetMaxResults(pageLimit)
.SetResultTransformer(Transformers.AliasToBean<Customer>()).List<Customer>();
return customerList;
}
?
轉載于:https://www.cnblogs.com/chenyt/archive/2010/12/04/Nhibernate.html
總結
以上是生活随笔為你收集整理的NHibernate分页的测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JNI学习1
- 下一篇: 利用键盘钩子捕获Windows键盘动作