Nhibernate在C 上的初級應用

2021-06-26 22:06:10 字數 2261 閱讀 5387

本文件適合初級開發者或者是第一次接觸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...