本文件適合初級開發者或者是第一次接觸nhibernate框架的朋友,其中nhibernate不是最新的版本,但是乙個比較經典的版本 nhibernate 2.1.2,其中用紅線標註的部分一定要仔細看,這些都是容易忽略和出錯的地方,筆者在此給大家做了特殊標記。
nhibernate框架的介紹:
開發環境 vs 2010 + mssql2005 + nhibernate 2.1.2.
目錄步驟
一、建立資料庫和對映的表。 步驟
二、建立專案和實體類對映類以及類對應的對映檔案。
步驟三、新增專案引用與nhibernate的dll檔案。 步驟
四、配置hibernate.cfg.xml檔案(資料庫對映資訊配置)無需配置web.config。
步驟五、建立和使用nhibernate.
步驟一、建立資料庫和對映的表。如圖:
資料庫:hibdb,對映表:people.
步驟二、建立專案和實體類對映類以及類對應的對映檔案。
新建乙個**,**建立之後,**解決方案右鍵,選擇新增 => 新建專案 => 類庫
給類庫起名,本測試程式名稱為:com.uuu9.nhibernate,然後把自帶的class1.cs改名為建立對映表的名稱(對映實體類的名稱),本示例為people.cs,其中實體類的**為表屬性的set與get,如圖:
與之前寫的實體類不同的是此實體類每個屬性前面就加了virtual,虛方法或者屬性的關鍵字,子類可以從新定義(override),在這裡必須有
virtual
關鍵字,不然程式執行就會出錯。
筆者判斷此原因可能是程式在執行時候此屬性被重新對映(定義),所以必須新增
virtual
關鍵字。
然後比較重要的乙個步驟就是配置此實體類對應的對映檔案,此對映xml檔名稱固定為「實體類.hbm.xml」,其**如圖:
實體類的屬性配置,其中「com.uuu9.nhibernate」為上述所建類庫(生成程式集的名稱)的名稱。注意:每個實體類對應的對映檔案「實體類
.hbm.xml
」,都要右鍵設定生成型別屬性為:嵌入的資源。如圖:
因為當作為乙個資源被嵌入後,專案的預設命名空間與檔名就組成了資源訪問的完整名稱,nhibernate執行時會訪問資源的完整名稱,但如果不設定,程式就找不到對映檔案,就會認為此類沒有設定對映,也就不能使用nhibernate操作。
步驟三、新增專案引用與nhibernate(版本2.1.2)的dll檔案。
要引用的nhibernate的dll如圖:
其中都為必須引用的dll。
步驟四、配置hibernate.cfg.xml檔案(資料庫對映資訊配置)
hibernate.cfg.xml檔案
為nhibernate的配置檔案,名稱固定,且必須放到bin目錄中。內容如圖:
name可以自己隨意定義,
「nhibernate.dialect.mssql2005dialect」可根據實際的資料庫的需要改為 2000dialect、2008dialect。 步驟
五、建立和使用nhibernate
使用的**如圖:
至此nhibernate製作完畢。
Nhibernate 在專案中的位置
nhibernate 是乙個物件持久化框架,所謂持久化就是把資料儲存在檔案或關聯式資料庫中.哪麼nhibernate 處於在持久化過程中的中間層,他負責把成功對映的物件轉換成相應的sql語句.再對資料庫作增刪改查操作,其中hql是他內部的查詢規則語句,哪麼它到底有什麼優勢,為什麼要用hql呢?優點 ...
在Linux上執行C
眾所周知,c 是microsoft推出的.net語言,只能在.net平台上執行,例如win 9x me nt 2000 xp和win ce之類的作業系統。但是,現在卻有了乙個叫做mono的專案,它的目標就是把.net及其程式語言移植到非windows的平台上。現在,c 是唯一被移植到非windows...
在Linux上執行C
眾所周知,c 是microsoft推出的.net語言,只能在.net平台上執行,例如win 9x me nt 2000 xp和win ce之類的作業系統。但是,現在卻有了乙個叫做mono的專案,它的目標就是把.net及其程式語言移植到非windows的平台上。現在,c 是唯一被移植到非windows...