人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

nhibernate數據加載之Criteria加載

nhibernate數據加載之Criteria加載

更新時間:2022-09-30 文章作者:未知 信息來源:網絡 閱讀次數:

Criteria是通過一組條件表達式(Expression)來加載數據的,它返回滿足條件的對象集合。

主要接口為ICriteria,實現為CriteriaImpl類,此類加有Internal修飾,因此不能在程序集外顯示創建,
nhibernate在session對象中為我們提供了一個方法CreateCriteria,此方法返回ICriteria接口。

這里列出了ICriteria接口的一些方法:
SetMaxResults:設置返回的最大結果數,可用于分頁;
SetFirstResult:設置首個對象返回的位置,可用于分頁;
SetTimeout:設置操作的超時值,此值將傳遞給IDbCommand對象;
Add:加入條件表達式(Expression對象),此方法可多次調用以組合多個條件;
AddOrder:加入排序的字段(Order對象);
List:返回滿足條件的對象集合。

Criteria數據加載的關鍵就在Expression對象上,此對象組成了查詢語句的where部分。

Expression是一個abstract(抽象)類,它通過一組static方法實現Factory Method(工廠方法)模式,這些static方法返回的都是Expression類的子類,下面列出一些常用的:

Eq:返回EqExpression,這是一個相等判斷的表達式;
Like:返回LikeExpression,這是一個like判斷的表達式;
Gt:返回GtExpression,這是一個大于判斷的表達式;
And:返回AndExpression,這是兩個表達式And操作后的表達式;
Or:返回OrExpression,這是兩個表達式Or操作后的表達式;

更多的Expression請參考相關文檔或源代碼。

下面以幾個例子來說明Criteria數據加載的用法:

1. 取得用戶名(username)為billy的用戶對象:

??? Expression ex = Expression.Eq( "Username", "billy" );
??? IList users = session.CreateCriteria(typeof(User)).Add( ex ).List();

2。取得用戶名(username)為billy, 密碼為123456的用戶對象

??? Expression ex = Expression.And( Expression.Eq("Username", "billy"),
??? Expression.Eq("Password", "123456") );
??? IList users = session.CreateCriteria(type(User)).Add( ex ).List();

3. 取得數據中第20-40的用戶對象。

??? IList users = session.CreateCriteria(typeof(User))
???????????????????????????? .SetFirstResult(20).SetMaxResults(40)
???????????????????????????? .List();

對于SQLSERVER,數據定位采用的是IDataReader前滾至firstResult處,然后取maxResults條記錄。

Criteria數據加載的不足:
1. 當使用SetFirstResult和SetMaxResults限制返回的對象數時,無法得知對象的總數;
2. 當前版本不支持關聯查詢(hibernate好像可以);


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 东丰县| 固原市| 土默特左旗| 页游| 邯郸县| 旬邑县| 信阳市| 肇源县| 景洪市| 阳曲县| 乌什县| 绥宁县| 昭通市| 莱州市| 额敏县| 远安县| 商城县| 静安区| 襄汾县| 东光县| 富民县| 巴南区| 汶川县| 台中县| 桓台县| 衡阳县| 哈密市| 犍为县| 阳新县| 临江市| 崇义县| 临夏市| 涿州市| 福泉市| 仪征市| 明水县| 肃南| 建宁县| 长武县| 轮台县| 商都县|