版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章NHibernate體系結(jié)構(gòu)總覽總覽對(duì)NHibernate體系結(jié)構(gòu)的非常高層的概覽:這幅圖展示了NHibernate使用數(shù)據(jù)庫(kù)和配置文件數(shù)據(jù)來(lái)為應(yīng)用程序提供持久化服務(wù)(和持久化的對(duì)象)。我們?cè)噲D顯示更多NHibernate運(yùn)行時(shí)體系結(jié)構(gòu)的細(xì)節(jié)。但挺不幸的,NHibernate是比較靈活的并且提供了好幾種不同的運(yùn)行方式。我們展示一下兩種極端情況。輕型體系中,應(yīng)用程序自己提供連接,并且自行管理事務(wù)。這種方式使用了NHibernateA
2、PI的一個(gè)最小子集。全面解決體系中,對(duì)于應(yīng)用程序來(lái)說(shuō),所有的底層API都被抽象了,NHibernate會(huì)替你照管所有的細(xì)節(jié)。下面是圖中一些對(duì)象的定義:SessionFacty(NHibernate.ISessionFacty)對(duì)屬于單一數(shù)據(jù)庫(kù)的編譯過(guò)的映射文件的一個(gè)線程安全的,不可變的緩存快照。它是Session的工廠,是ConnectionProvider的客戶。可以持有一個(gè)可選的(第二級(jí))數(shù)據(jù)緩存,可以在進(jìn)程級(jí)別或集群級(jí)別保存可以在
3、事物中重用的數(shù)據(jù)。會(huì)話Session(NHibernate.ISession)單線程,生命期短促的對(duì)象,代表應(yīng)用程序和持久化層之間的一次對(duì)話。封裝了一個(gè)連接。也是Transaction的工廠。保存有必需的(第一級(jí))持久化對(duì)象的緩存,用于遍歷對(duì)象圖,或者通過(guò)標(biāo)識(shí)符查找對(duì)象。持久化對(duì)象(Persistent)及其集合(Collections)生命期短促的單線程的對(duì)象,包含了持久化狀態(tài)和商業(yè)功能。它們可能是普通的對(duì)象,唯一特別的是他們現(xiàn)在從屬
4、于且僅從屬于一個(gè)Session。一旦Session被關(guān)閉,他們都將從Session中取消聯(lián)系,可以在任何程序?qū)幼杂墒褂茫ū热纾苯幼鳛閭魉偷奖憩F(xiàn)層的DTO數(shù)據(jù)傳輸對(duì)象)。臨時(shí)對(duì)象(TransientObject)及其集合(Collection)目前沒(méi)有從屬于一個(gè)Session的持久化類的實(shí)例。他們可能是剛剛被程序?qū)嵗?,還沒(méi)有來(lái)得及被持久化,或者是被一個(gè)已經(jīng)關(guān)閉的Session所實(shí)例化的。事務(wù)Transaction(NHibernate
5、.ITransaction)(可選)單線程,生命期短促的對(duì)象,應(yīng)用程序用它來(lái)表示一批工作的原子操作。是底層的事務(wù)的抽象。一個(gè)Session某些情況下可能跨越多個(gè)Transaction事務(wù)。ConnectionProvider(NHibernate.Connection.ConnectionProvider)(可選)連接的工廠。從底層的IDbConnection抽象而來(lái)。對(duì)應(yīng)用程序不可見,但可以被開發(fā)者擴(kuò)展實(shí)現(xiàn)。TransactionFa
6、cty(.sf.hibernate.TransactionFacty)(可選)事務(wù)實(shí)例的工廠。對(duì)應(yīng)用程序不可見,但可以被開發(fā)者擴(kuò)展實(shí)現(xiàn)。在上面的輕型結(jié)構(gòu)中,程序沒(méi)有使用TransactionTransactionFacty或ConnectionProviderAPI直接和對(duì)話了。第2章ISessionFacty配置配置目錄目錄可編程配置方式獲取ISessionFacty用戶自行提供連接NHibernate提供連接可選配置屬性SQL方言(
7、SQLDialects)外連接抓?。∣uterJoinFetching)自定義CacheProvider查詢語(yǔ)言替換LoggingNHibernateNHibernate提供提供連接連接另一種方法就是,你可以讓ISessionFacty替你打開連接。SessionFacty必須事先知道連接的參數(shù),有幾種不同的方法設(shè)置參數(shù):1.通過(guò)提供一個(gè)IDictionary實(shí)例給Configuration.Properties。2.在名為nhiber
8、nate的System.Configuration.NameValueSectionHler類型的配置節(jié)點(diǎn)添加屬性。3.在hibernate.cfg.xml中包含元素。如果你使用這種方法,打開一個(gè)ISession是非常簡(jiǎn)單的:ISessionsession=sessions.OpenSession()openanewSessiondosomedataaccesswkanADOconnectionwillbeusedondem所有的NHi
9、bernate屬性名和約束都在NHibernate.Cfg.Environment類中定義。我們討論一下連接配置最重要的幾項(xiàng)設(shè)置:假若你設(shè)置了如下的屬性,Hibernate會(huì)使用DataProvider來(lái)得到連接:表2.1.NHibernate屬性屬性屬性名屬性名用途用途hibernate.connection.provider_class定制IConnectionProvider的類型.例如:例如:full.classname.of.
10、ConnectionProvider(如果提供者創(chuàng)建在NHibernate中)或者full.classname.of.ConnectionProviderassembly(如果使用一個(gè)自定義的IConnectionProvider接口的實(shí)現(xiàn),它不屬于NHibernate)。hibernate.connection.driver_class定制IDriver的類型.full.classname.of.Driver(如果驅(qū)動(dòng)類創(chuàng)建在NHib
11、ernate中)或者full.classname.of.Driverassembly(如果使用一個(gè)自定義IDriver接口的實(shí)現(xiàn),它不屬于NHibernate)。hibernate.connection.connection_string用來(lái)獲得連接的連接字符串.hibernate.connection.isolation設(shè)置事務(wù)隔離級(jí)別.請(qǐng)檢查System.Data.IsolationLevel來(lái)得到取值的具體意義并且查看數(shù)據(jù)庫(kù)文檔以
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于nhibernate的crm
- 基于NHibernate的測(cè)試用例管理系統(tǒng).pdf
- 基于NHibernate的SaaS管理平臺(tái)研究與應(yīng)用.pdf
- 基于NHibernate的數(shù)據(jù)持久化研究.pdf
- 基于NHibernate的MIS系統(tǒng)多層架構(gòu)的研究與應(yīng)用.pdf
- 基于.net平臺(tái)orm技術(shù)——nhibernate的研究與應(yīng)用
- 基于NHibernate技術(shù)的網(wǎng)絡(luò)培訓(xùn)平臺(tái)的研究與設(shè)計(jì).pdf
- 基于NHibernate中職學(xué)分管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于Nhibernate技術(shù)的庫(kù)存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于NHibernate的網(wǎng)上客運(yùn)結(jié)算系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn).pdf
- 26320.基于nhibernate浙能技術(shù)標(biāo)準(zhǔn)網(wǎng)的設(shè)計(jì)與實(shí)現(xiàn)
- NHibernate框架技術(shù)在電力生產(chǎn)管理系統(tǒng)的應(yīng)用和實(shí)踐.pdf
- 基于NHibernate的實(shí)驗(yàn)室信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于NHibernate與ORM的汽車協(xié)同售后服務(wù)系統(tǒng)研究及實(shí)現(xiàn).pdf
- 基于NHibernate和DWZ框架的工程建設(shè)項(xiàng)目資金管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- rtk使用中參數(shù)的使用
- 方劑使用
- 圓鋸使用
- 壁紙使用
- 使用眼霜
評(píng)論
0/150
提交評(píng)論